【问题标题】:Foreign Key in Entity Data Model [closed]实体数据模型中的外键
【发布时间】:2009-07-28 07:59:17
【问题描述】:

我使用实体数据模型,但我有一个问题:如果一个表,例如客户有 categoryId(表类别的外键)它不会出现在 cutomers 实体中???? 那么我怎样才能检索或设置这个值呢?

【问题讨论】:

    标签: asp.net linq datamodel


    【解决方案1】:

    实体框架本身会呈现实际属性,它将创建类型类别的属性。 即:

    Customer.Category = new Category()

    实体框架将在内部处理引用/外键。

    【讨论】:

    • 好的,但是我在类别表中有另一个外键(类别 parentId)(同一张表中来自 categoryid 的 parentId 外键)如何获取此字段?
    【解决方案2】:

    Colin 的回答是 100% 准确和真实的 - 对于当前可用的 Entity Framework 版本(带有 .NET 3.5 SP1)。

    对于未来某个时间将随 .NET 4.0 一起发布的即将发布但尚未发布的 EF v2(或 EF 4??),EF 团队添加了他们所谓的“外键关联”,本质上是将允许您只指定外键值(例如 CategoryID),而不必创建/加载/分配整个关联实体。

    在这些优秀的帖子中查看更多信息:

    免责声明:这是关于尚未发布的产品的预发布信息,并且没有正式宣布交付日期 - 您现在可以下载 Beta1。

    马克

    【讨论】:

    • 好的,但是我在类别表中有另一个外键(类别 parentId)(同一张表中来自 categoryid 的 parentId 外键)如何获取此字段?
    • 然后您将使用 Category.Category.Id(打开 EF 图并选择 Category Entity。它应该为您提供所有可用属性的列表。)
    • @Wafaa:如果您需要在引用的 Category 中获取 ParentID,那么您必须加载整个 Category 实体,然后在该实体中设置“ParentID”列
    • 当您打开图表时,您可以选择将父类别属性(开箱即用的名称可能类似于 Category 或 Category1)重命名为 CategoryParent 或类似名称
    • 即将发布但尚未发布的 EF v2(或 EF 4)现在可用吗?
    【解决方案3】:

    你不能这样吗?

    Customer.CategoryReference.EntityKey = Key;
    

    【讨论】:

      【解决方案4】:

      如果你想看到它自己的外键,你必须使用 .NET 框架 4 不少于 在 .NET 3.5 中,您会找到对外键类的引用,而不是它自己的外键

      Store s = new Store();
                      User u=s.User;//bring referance of the user with foreign key .net 3.5 & 4
                      int i = s.User_ID;//bring the user_id forein key .net 4
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-05
        • 1970-01-01
        • 2023-02-10
        • 1970-01-01
        • 1970-01-01
        • 2019-08-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多