EF POCO - Невозможно определить ключ для типа объекта? - PullRequest
1 голос
/ 29 октября 2010

У меня есть класс 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 Ответ

1 голос
/ 29 октября 2010

Вы можете применить атрибут [Key], чтобы указать, какое свойство является первичным ключом, когда EF не может определить его по именам / типам.Я думаю Вы можете применить его несколько раз для создания составного ключа.

...