我有一个POCO类,映射到一个基本上包含三个主键的表,如下所示:
public class ContactProjectSite
{
public int ContactID { get; set; }
public int ProjectID { get; set; }
public int SiteID { get; set; }
public virtual Contact Contact { get; set; }
public virtual Project Project { get; set; }
public virtual Site Site { get; set; }
}
这是继承DbContext类的类,重写OnModelCreating方法:
public class TLI : DbContext
{
public DbSet<ContactProjectSite> ContactsProjectSite { get; set; }
protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder)
{
modelBuilder.Entity<ContactProjectSite>().MapSingleType(cps => new
{
cpcid = cps.ContactID,
cppid = cps.ProjectID,
cpsid = cps.SiteID
}).ToTable(new StoreTableName("contacts_ps", "dbo"));
}
}
但是,运行此时,我收到此错误:*无法推断实体类型'Library.Models.ContactProjectSite'的键 . *知道为什么吗?
谢谢 .
1 回答
当EF无法从名称/类型中找出它时,您可以应用
[Key]
属性来指示哪个属性是主键 . 我认为你可以多次应用它来创建一个复合键 .