EF4 CTP5 Code First approach ignores Table attributes
I'm using EF4 CTP5 code first approach but am having trouble getting it to work. I have a class called "Company" and a database table called "CompanyTable". I want to map the Company class to the CompanyTable table, so have code like this:
[Table(Name = "CompanyTable")]
public class Company
{
[Key]
[Column(Name = "CompanyIdNumber", DbType = "int")]
public int CompanyNumber { get; set; }
[Column(Name = "CompanyName", DbType = "varchar")]
public string CompanyName { get; set; }
}
I then call it like so:
var db = new Users();
var companies = (from c in db.Companies
select c).ToList();
However it errors out:
Invalid object name 'dbo.Companies'.
It's obviously not respecting the Table attribute on the class, even though it says here that T开发者_如何学JAVAable attribute is supported. Also it's pluralizing the name it's searching for (Companies instead of Company.) How do I map the class to the table name?
on you class that inherits from DbContext, override the OnModelCreating method
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Company>().ToTable("dbo.CompanyTable");
}
Forgot to add a reference to the ctp5 dll to my schemas project, it was using System.Data.Linq.Mapping instead.
精彩评论