【问题标题】:Entity Framework "Code Smells" Question实体框架“代码味道”问题
【发布时间】:2009-08-24 15:14:17
【问题描述】:

我是 Ef 的粉丝并想使用它,但我不一定喜欢关联本身的工作方式。如果我有一个简单的查找表,其中可能包含 3 行并且通常会被视为代码中的枚举,我不喜欢我实际上必须这样做才能使用 EF 中的关联来分配一个值:

myEntity.MyLookup = db.MyLookups.First(ml => ml.MyLookupId == 5);

我的意思是,它不仅看起来很时髦,而且它还会再次查询数据库,这样我就可以有效地分配值“5”。我知道这也可以通过 MyLookupReference 设置 EntityKey 来实现,但这看起来更臭。

我的问题是,是否有可能摆脱关联的商店表示,并通过没有导航属性将所有内容视为我的实体上的标量,并允许我在必要时进行连接?

另外,如果这是可行的,它对跟踪谁的实体或类似的东西有任何影响吗?谢谢!

【问题讨论】:

    标签: .net entity-framework


    【解决方案1】:

    我认为这是将业务逻辑与数据访问层分开的另一个原因。当然,您可能已经这样做了。

    例如,如果您有一个 User 表和一个 UserTypes 表。您的数据层需要处理这个问题,但业务层不需要知道它,假设您的数据适配器中有某种​​工厂方法,它接受用户和用户类型并将它们转换为管理员(例如示例)。

    不确定这是否有帮助,只是想我会给出意见。

    【讨论】:

      【解决方案2】:

      外键值是 EF v1 中的一个难题。除非您准备自己创建 EntityKey,否则您在上面的操作方式是唯一的方法。

      EF v4.0 将通过“FK 关联”消除这种令人头疼的问题。 FK 关联是表示关系的可更新标量值。

      【讨论】:

        猜你喜欢
        • 2015-02-24
        • 1970-01-01
        • 2021-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多