【问题标题】:Entity Framework 4.1 Code First: Single column foreign-key to multiple entitiesEntity Framework 4.1 Code First:多个实体的单列外键
【发布时间】:2011-08-29 21:09:37
【问题描述】:

我一直在尝试在 EF 4.1 中创建模型来表示具有单个表和包含来自其他两个表的外键的列的数据库模式,但是在注释和流畅的 API 方面都没有运气。此处显示了一个示例模型:

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; }
}

目前这些实体的配置对于用户和帐户模型构建器来说都是这样的:

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

关于如何实现的任何想法?非常感谢。

【问题讨论】:

    标签: entity-framework-4 ef-code-first


    【解决方案1】:

    数据库本身甚至是不可能的,EF 不会为此进行任何抽象。每个实体必须有单独的列和导航属性。

    【讨论】:

    • 感谢拉迪斯拉夫的回复。虽然我能够使用我描述的设置的外键关系创建一个数据库(这很奇怪),但你是绝对正确的,因为我无法插入实际数据。所以我想选择是将键映射到多个列,或者创建一个一对一的中介来进行映射。对这种情况下的首选方法有什么建议?
    猜你喜欢
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2012-05-15
    • 2023-04-11
    • 2011-08-01
    • 1970-01-01
    相关资源
    最近更新 更多