c# – 无法添加到edmx的视图

当尝试将视图添加到edmx文件时,没有任何反应。
我使用wxl编辑器打开了edmx文件,我注意到以下错误:

warning 6013: The table/view
‘CellularOrders.dbo.V_LINK’ does not
have a primary key defined and no
valid primary key could be inferred.
This table/view has been excluded. To
use the entity, you will need to
review your schema, add the correct
keys, and uncomment it.

(重要的事情 – 我没有,不需要添加基于edmx的视图的表。此外,该视图仅用于对数据进行select语句)

所以在数据库中,我更新了T_LINK表,并将其中一个在视图上反映的字段作为主键。然后,当我再次尝试将视图添加到edmx时,不会再发生任何事情。

我该如何解决?
有没有办法解决这个没有做任何事情的表?
我可以添加另一个视图,以某种方式包装旧视图,但是具有固定的属性?

添加到实体模型的每个表或视图都必须有一些关键字。实际上并不一定是主键。如果表没有定义的主键EF将尝试使用简单规则来推断密钥:它将使所有不可为空的非计算非二进制列并将其标记为实体密钥。如果没有这样的列存在,则不能自动添加实体,并且设计者将抛出所提到的警告。解决方法是手动添加视图,并自己选择密钥,但一旦执行,您将无法使用从数据库更新,因为它将始终覆盖您的更改。

您定义的密钥应该是唯一的,否则您可能会在内部使用与其相关的其他一些问题。

翻译自:https://stackoverflow.com/questions/6251657/cannot-add-view-to-the-edmx

转载注明原文:c# – 无法添加到edmx的视图