2011-08-29 90 views
3

我一直在试图在EF 4.1中创建模型来表示一个数据库模式,其中有一个表和列存放着来自另外两个表的外键,但是已经有了这两个注释和流畅的API都运气不佳。样本模型如下所示:实体框架4.1代码优先:单列外键到多个实体

public class User 
{ 
    ... 
    public virtual ExtendedAttribute ExtendedAttributes { get; set; } 
}  

public class Account 
{ 
    ... 
    public virtual ExtendedAttribute ExtendedAttributes { get; set; } 
} 

public class ExtendedAttribute 
{ 
    public Guid Id {get; set;} 
    public Guid ItemId {get; set;} // both Account.Id and User.Id stored here 
    public string Value { get; set; } 
} 

目前这些实体的配置看起来像这样两个用户和帐户modelBuilders:

this.HasOptional(u => u.ExtendedAttributes).WithRequired(); 

如何做实现有什么想法?非常感谢。

回答

0

数据库本身甚至是不可能的,EF也不会为此提供任何抽象。您必须为每个实体分别具有列和导航属性。

+0

感谢Ladislav的回应。虽然我能够创建一个数据库,并按照我所描述的那样设置了外键关系(这很奇怪),但您绝对正确,因为我无法插入实际数据。所以我想这个选项是将键映射到多个列,或者创建一个一对一的中介来完成映射。关于这种情况下首选方法的建议? – Brent

相关问题