类层次结构定义VS(自动)生成的导航属性

时间:2012-03-02 14:00:40

标签: c# entity-framework f# navigation-properties transitive-closure

以下情况应该考虑什么?

假设你有行情。

报价与特定合同有关。

我可以通过以下方式 定义 我的课程

Contract =
  someproperty  : int

Quote:
  contract : Contract

然而,当我想要导航时,即使 存在于我的模型中,也可以

myContract.quotes

通常,在使用Entity框架或其他ORM时会生成这些属性。

但是将 定义 导航 分开的问题完全存在,即使使用纯粹的仅记忆类。

(我想可以从定义中指定的链接子集生成导航图的传递闭包)

我的问题是:在FSharp中自动继承这些导航属性的可行方法是什么?我只是一个用户,而不是一个框架开发者,而且这是非常低级的东西。

[显然你可以推广到更复杂的类层次结构

  • 报价来自经纪人,具有出价或性质,具有等级,并且对于特定合约是有效的。
  • 合同可以在某种程度上成熟,比如2013年,并且可以参考特定的公司。
  • 公司有自动收报机等......]

2 个答案:

答案 0 :(得分:2)

也许我误会了;但你能否使用extension method添加导航方式?你仍然需要调用一个函数来获取特定合约的报价,但是帮助程序会存在,它可以调用你的数据提供者来获取该联系人的过滤报价列表吗?

答案 1 :(得分:1)

嗯,有趣的问题。

根据此blog post,您可以使用实体框架以非数据库支持的方式执行此操作。你必须自己处理持久性。

或者你可以尝试用一个通用的F#解决方案自己花一个星期的时间来解决这个问题,但我会说EF在这里已经足够好了吗?