EF4 CTP5 Code First方法忽略表属性

时间:2010-12-20 20:49:37

标签: entity-framework-4 code-first

我正在使用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属性。它也是它正在搜索的名称的多元化(公司而不是公司。)如何将类映射到表名?

2 个答案:

答案 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。