如何使用Entity Framework和FluentHtml设置Foreign Key对象

时间:2009-11-05 17:53:27

标签: c# entity-framework mvccontrib fluenthtml

我要做的是通过FluentHtml在EF实体中设置一个外键对象。我有一个Foo实体,通过Foo.Bar引用对象Bar。我想要做的是在我的视图窗体中设置Bar的值。我的模型包含通过Model.Bars的所有Bars的集合。在我看来,我只是使用<%= this.Select(m => m.Foo.Bar).Options(Model.Bars) %>,但模型状态声称它无效。下拉列表已正确填充条形ID,它们看起来都有效。我需要在表单中设置EF实体引用属性吗?

我刚从Linq2SQL移过,我只是使用Select(m =&gt; m.Foo.BarId),因为您可以映射关键引用以及对象。但是,实体框架不允许这样做。

2 个答案:

答案 0 :(得分:1)

您遇到使用业务对象作为视图模型时出现的众多复杂情况之一。我可能会建议,从长远来看,如果将业务对象转换为轻量级视图模型以进行渲染和绑定,则会减少麻烦。让你的服务层(或控制器,如果你必须)弄清楚如何根据EditFoo.BarId设置Foo.Bar。

答案 1 :(得分:0)

我不知道FluentHtml。但关于EF:

  1. EF 4.0让你拥有“外键关联”,让你像L2S一样引用m.Foo.BarId。
  2. 在EF 1中,或在EF 4中使用“独立关联”时,如果加载了Bar,则需要执行m.Foo.Bar.Id(注意额外点)。