我正在使用EF4 CTP5代码第一种方法,但我无法使其正常工作。我有一个名为“Company”的类和一个名为“CompanyTable”的数据库表。我想将Company类映射到CompanyTable表,因此请使用以下代码:
[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; }
}
然后我这样称呼它:
var db = new Users();
var companies = (from c in db.Companies
select c).ToList();
然而它出错:
无效的对象名称'dbo.Companies'。
显然不尊重类的Table属性,即使它表示here支持Table属性。它也是它正在搜索的名称的多元化(公司而不是公司。)如何将类映射到表名?
答案 0 :(得分:1)
在您继承自DbContext的类上,重写OnModelCreating方法
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Company>().ToTable("dbo.CompanyTable");
}
答案 1 :(得分:0)
忘记将ctp5 dll的引用添加到我的架构项目中,它改为使用System.Data.Linq.Mapping。