1、由于视图是一张虚拟表,没有定义主键,但在EF进入导入的时候需要实体有主键。这就产生了不一致现象。EF有能力能够从视图相关的表的非空字段推断其为视图主键。但如果遇到视图中相关的表字段都是可空的情况怎么办呢?

解决方案:检查视图中引用的某张表的主键或外键是否设置错误!本来是不能为空的字段,设置成了可为空! 

例如: 河流水库表 主键WaterID 不为空, 但在 点位位置表引用外键WaterID是却设置为可空!

转载于:https://blog.csdn.net/weixin_34250709/article/details/93066147

方案:

a)使用row_number函数生成一列。

b)对表字段使用isnull函数指定默认值,则EF也认为其为视图主键的一部分。与此对应于的是如果不想将一个非空字段转换为视图实体主键,则可以使用nullif函数。

具体可参见:http://stackoverflow.com/questions/1013333/entity-framework-and-sql-server-view