代码之家  ›  专栏  ›  技术社区  ›  Jim Mitchener

如何使用实体框架和Fluenthl设置外键对象

  •  0
  • Jim Mitchener  · 技术社区  · 15 年前

    我要做的是通过fluenthl在ef实体中设置一个外键对象。我有一个foo实体,通过foo.bar引用对象栏。我要做的是在视图窗体中设置条形图的值。我的模型通过model.bars包含所有条的集合。在我看来,我只是在使用 <%= this.Select(m => m.Foo.Bar).Options(Model.Bars) %> 但是模型状态声称它是无效的。下拉列表中正确填充了条形图ID,并且看起来都是有效的。在窗体中设置ef实体引用属性是否需要一些特殊的魔力?

    我刚从linq2sql转移过来,当时我只是使用select(m=>m.foo.barid),因为您可以映射键引用和对象。但是,实体框架不允许这样做。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Tim Scott    15 年前

    您遇到了使用业务对象作为视图模型所产生的许多复杂问题之一。我可能建议,从长远来看,将业务对象转换为用于呈现和绑定的轻量级视图模型的麻烦要小得多。让您的服务层(或者控制器,如果必须的话)了解如何基于editfoo.barid设置foo.bar。

        2
  •  0
  •   Craig Stuntz    15 年前

    我不知道Fluenthl。但是关于英孚:

    1. EF4.0允许您有“外键关联”,它允许您像L2S那样引用m.foo.barid。
    2. 在EF1中,或者在EF4中使用“独立关联”,您需要执行m.foo.bar.id(注意额外的点),前提是加载了条。
    推荐文章