我正在使用EF4 CTP5尝试持久化一个分布在两个表中的POCO对象,链接是ContactID。当我保存联系人时,我希望将核心联系人信息保存在一个表(Contacts)中,并将与拥有该联系人的用户的链接保存在另一个表(UserToContacts)中。我已经定义了下面的自定义映射,但是当我调用SaveChanges时,我会收到以下错误:在多个位置生成了跨实体或关联共享的值。请检查映射是否将EntityKey拆分为多个存储生成的列。如果您有任何想法,将不胜感激!
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
/// Perform Custom Mapping
modelBuilder.Entity<Contact>()
.Map(mc =>
{
mc.Properties(p => new
{
p.ContactID,
p.FirstName,
p.MiddleName,
p.LastName
});
mc.ToTable("Contacts");
})
.Map(mc =>
{
mc.Properties(p => new
{
p.ContactID,
p.UserID
});
mc.ToTable("UserToContacts");
});
}