我创建了一个视图"供应商",显示表"T_ADDRESS"中的列.该视图被声明为(我知道,'*'在视图中是禁止的)
create View Supplier as
select * from T_ADRESSEN where IsSupplier = 1
Run Code Online (Sandbox Code Playgroud)
在EF中,我想使用视图,因为它比丑陋的"T_ADRESSEN"更具可读性.到目前为止这么容易.
现在是棘手的部分(对我来说).表T_ADDRESS具有一个自引用外键"MainAddressId",它指向T_ADDRESS.
创建DB-first(或DBF的CodeFirst)将为表T_ADDRESS(和导航属性)创建FK关系,但不为视图'Supplier'创建.当然不是:EF对FK关系一无所知(尽管视图暴露了相同的列).
现在我尝试在Supplier-class的代码第一个模型中使用'ForeignKey'和'InverseProperty'属性,但这给了我一个ModelValidationException.同样明确:没有这种FK关系.
虽然约束不存在,但如何告诉EF将字段视为外键?
我想要做的是在我的EF模型中使用"供应商"(作为T_ADDRESS的子集).如果还有其他方法可以做到,我很乐意收到提示.