我有三个名为
的表
1. SubProcedure
2. UnitReference
3. TestReference
这里我有以下条件
子程序应该至少有一个 UnitReference
SubProcedure 可以零或多 TestReferences
TestReference 应具有 SubProcedure 和 UnitReference
TestRefernce表记录将是这样的
以下是TestReferences的TestRefenceTable图片链接。
我现有的实体模型图链接是ExistingModel。
我无法在此处发布我的图片,因此我添加了图表的参考链接。
我的问题是
我如何表示 SubProcedure =>之间的关系? UnitReference 。
如何表示 UnitReference =>之间的关系? TestReference 。
我如何表示 SubProcedure =>之间的关系? TestReference ..
我想确保我的三个表之间的现有关系是正确的,如果错误的意思请指导我纠正它。
先谢谢
答案 0 :(得分:0)
你的模特看起来很好,做你想做的事情;具体是:
UnitReference
可以有多个SubProcedure
s SubProcedure
可以有多个TestReference
s UnitReference
可以有多个TestReference
s 如果这是您想要的,那么您已经正确完成了。
我要注意的一件事是你的模型中有冗余。您可以通过两条不同的路径从UnitReference
导航到TestReference
:直接或通过SubProcedure
。这意味着其中一种关系是多余的。让我用LINQ方法语法解释一下:
//To get all SubProcedures for a UnitReference
context.UnitReferences.Find(UnitReferenceId).SubProcedures;
//To get all TestReferences for a UnitReference
context.UnitReferences.Find(UnitReferenceId).TestReferences;
//instead of the line above you could use the other relationship like this
context.UnitReferences.Find(UnitReferenceId).SubProcedures.SelectMany(s => s.TestReferences);
没有任何错误的具有冗余 - 它可能非常有用。请注意,在更新的情况下,您需要维护两个单独的关系。例如,如果您想将TestReference
从一个SubProcedure
移到另一个.SubProcedure
,则需要更新TestReference
的{{1}}属性,但也 .UnitReference
属性到新.UnitReference
的{{1}}属性,或者数据不一致。