非简单JOIN的导航属性

时间:2013-12-21 21:53:08

标签: entity-framework

晚上你可爱的SO用户,我有一个问题给你们所有人。

我最近开始研究一个拥有相当繁重的数据库的现有项目,我的任务是让我们的.NET开发人员更容易一些。普遍的共识是我们想要使用实体框架(或类似的),但我在解决如何映射我们使用的一些更有趣的JOIN子句时遇到了问题。我相信我需要导航属性来将实体绑定在一起,但我不确定如何制作自己的实体。我现在所拥有的只是从数据库创建模型时生成的。

我会举个例子。我们有一张表格,其中包含许多文本数据,这些数据可能与客户,供应商,员工或最终用户相关联。通过使用OwnerID字段以及OwnerType字段(其中包含表示类型的单个字符)将数据链接回这些数据。它可能不太理想,但我无法改变数据库的设计,我想知道我是否可以让ORM处理将所有内容链接在一起的令人讨厌的工作,以便我们的开发人员可以加载他们想要的客户记录然后找到链接的文本数据。

这可能吗?如果是这样,有人能指出我的方向来帮我解决这个问题吗?我有一个很好的旧搜索,但我真的不知道如何说出我的查询。

1 个答案:

答案 0 :(得分:0)

听起来像OwnerId不是外键,这意味着你无法正确使用导航属性。

我没有看到任何黑客为此,当你指出自己这不是一个很好的解决方案。解决这个问题的唯一方法是重新设计数据库或使用封装它的方法。