一、常见问题
有时候遇到视图添加不进模型编辑器里,不理解EF机制的小白很是无解,而且EF编辑器愣是报一些没有价值的错误信息:
模型已生成,但出现警告或错误。
有关详细信息,请参阅错误列表。运行应用程序前需要修复这些问题。
其实这些问题归根结底可以用Microsoft官网上的一句话来解答:
但是对于视图一些没有表主键的情况,EF生成器是怎么生成模型Key的?在官网里没有介绍,只能自己总结。
二、EF生成器是怎么为视图分配Key的
以下是我总结的三点(可以右键edmx生成器,用xml格式打开模型进行查看):
1. 没有主键的单表查询,EF编辑器会默认第一个字段为主键
CREATE VIEW AA AS
SELECT B.Name,B.Mobile FROM [User] B
对应生成的模型:
<!--生成过程中发现错误:
警告 6002: 表/视图“TestDB.dbo.AA”未定义主键。已推断出该键,并将定义创建为只读的表/视图。
-->
<EntityType Name="AA">
<Key>
<PropertyRef Name="Name" />
</Key>
<Property Name="Name" Type="varchar" Nullable="false" MaxLength="50" />
<Property Name=</