How to specify table name with Entity Framework Code First Fluent API

C#Entity FrameworkEf Code-FirstCode First

C# Problem Overview


I have an Entity and I am to configure Entity Framework to map it to a database table with different name.

I can easily do this with Code First DataAnnotations (DataAnnotations.Schema.TableAttribute).

But due to limitations now I have to use Code First Fluent API (my domain objects will be used by external clients, so they shouldn't be technology-specific - e.g. have any references to DataAnnotations)

I've searched on MSDN but found nothing. So is it possible and how?

Thank you.

C# Solutions


Solution 1 - C#

You can also use the Table annotation:

[Table("InternalBlogs")]
public class Blog

See: Code First Data Annotations

Solution 2 - C#

You'll use the .ToTable() method:

modelBuilder.Entity<Department>().ToTable("t_Department");   

Source: MSDN: http://msdn.microsoft.com/en-us/data/jj591617.aspx

Solution 3 - C#

Use ToTable method:

public class MyEntityMap : EntityTypeConfiguration<MyEntity>
{
	public const string TableName = "MyEntity";

	public MyEntityMap()
	{					
		ToTable(TableName);

		Property(t => t.Id);
	}
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionbairogView Question on Stackoverflow
Solution 1 - C#Assaf S.View Answer on Stackoverflow
Solution 2 - C#Martin CronView Answer on Stackoverflow
Solution 3 - C#alexmacView Answer on Stackoverflow