【问题标题】:Best Way to Add Sublist in EF在 EF 中添加子列表的最佳方法
【发布时间】:2011-11-11 09:44:50
【问题描述】:

我的数据库模型如下

与订单相关的用户(表)与订单行项目相关的(表)

我希望将订单行项目的导航属性映射到用户,但是我不想在订单行项目表上设置 user_id 和外键 - 有没有办法可以做到这一点通过 EF - 我宁愿通过用户绑定到订单表这一事实以某种方式连接它 - 并且假设用户绑定到所有这些订单行项目?

我正在使用 EF v4

【问题讨论】:

    标签: asp.net linq entity-framework-4


    【解决方案1】:

    我不明白你为什么不想要外键,但是如果你进入模型查看器并右键单击实体名称,你可以选择添加->关联手动添加一个。

    【讨论】:

    • 如果我添加外键,那么我需要将用户 ID 添加到 order_line_item 表中,并通过代码和大量的地方,只是很多工作让我害怕.. 哈哈 - 无论如何,我添加了一个新的导航属性,但是它只允许我从数据库中已经定义的键中进行选择,添加导航属性后我不确定如何将它们结合在一起
    • 不要选择添加 -> 导航属性。添加一个关联,它会显示一个为您完成所有工作的向导
    • 嗨 KMCC049,我已经完成了关联,但是由于我收到错误消息,它似乎无法正常工作,我相信这可能是因为用户 id 表中不存在order_line_items 表,但在订单表中
    【解决方案2】:

    您可以为 OrderLine 实体创建一个部分类并添加一个名为 User 的属性。实现用户属性,通过 Order 实体自动返回用户对象。

    例如(vb):

    Partial Public Class OrderLine
    
        Public Readonly Property User As User
            Get
                Return Me.Order.User
            End Get
        End Property
    
    End Class
    

    【讨论】:

    • 我想按用户实际显示订单行项目,所以这将是用户的部分类,我已经尝试过这个(在 c# 中)但是我似乎无法访问 get { 返回 this.orders_assigned.order_line_items; } -> 我似乎无法从部分用户类访问 orders_assigned 导航属性
    猜你喜欢
    • 1970-01-01
    • 2016-12-03
    • 2019-03-26
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 2020-09-15
    • 2017-01-06
    • 1970-01-01
    相关资源
    最近更新 更多