具有复杂关系的实体框架

时间:2015-07-19 14:11:30

标签: asp.net-mvc entity-framework tsql

我有一个数据集,它是一些独立的对象(人物,属性,作业),每个对象都与另一个对象相关(注释)。

该关系由外键(主要是人,属性或作业)和仅仅是varchar字段的类型组成。

所以注意看起来基本上就像:

Id
RecordId(foreign key)
RecordType(person, propery, job as varchar)
Note Detail

面临的问题是,每个主要对象可能具有相同的密钥,因此当使用包含的实体框架时,该人可能具有工作注释。我可以稍后使用RecordType ==' XYZ'我认为条款很乱。可悲的是,包含内容缺乏“包括哪里”的能力。

任何人都可以建议另一种方法吗?

1 个答案:

答案 0 :(得分:0)

我有类似的问题。一种解决方案是具有表每层次结构关系。你最终得到了一个N​​ote(基类)和PersonNote,PropertyNote等。奇怪的是,EF想要为每种类型的引用添加一个额外的字段,因此除了现有的RecordId之外,你的表还需要RecordId_1,RecordId_2等字段。如果您没有使用Code First生成数据库,这有点不直观。

我使用的另一个解决方案是在db中创建执行所需过滤的视图,组合注释和源记录,然后将EF映射到视图。