C# 尝试将新视图添加到edmx文件将不会创建

C# 尝试将新视图添加到edmx文件将不会创建,c#,asp.net-mvc,entity-framework,ef-database-first,C#,Asp.net Mvc,Entity Framework,Ef Database First,我创建了一个ADO.NET实体数据模型,现在我想向其中添加一个新视图。我发现了这一点并完成了步骤,但新视图没有添加到模型中。以下是我遵循的步骤: 1) 右键单击my.edmx文件并选择“打开方式” 2) 选择了ADO.NET实体数据模型设计器 3) 在数据模型设计器中单击鼠标右键(在“添加”选项卡中),然后选择“从数据库更新模型” 4) 选中我的新视图并点击finish 5) 保存了设计的模型,并对运行的脚本表示同意 之后,我的新视图不在模型设计器中,或者我的解决方案资源管理器中有新类。我错过了

我创建了一个ADO.NET实体数据模型,现在我想向其中添加一个新视图。我发现了这一点并完成了步骤,但新视图没有添加到模型中。以下是我遵循的步骤:

1) 右键单击my.edmx文件并选择“打开方式”
2) 选择了ADO.NET实体数据模型设计器
3) 在数据模型设计器中单击鼠标右键(在“添加”选项卡中),然后选择“从数据库更新模型”
4) 选中我的新视图并点击finish
5) 保存了设计的模型,并对运行的脚本表示同意


之后,我的新视图不在模型设计器中,或者我的解决方案资源管理器中有新类。我错过了什么?如果没有定义主键,Entity Framework DB first通常会忽略您的视图

如果希望使其工作,请在数据库中,对其中一个字段使用
ISNULL()
函数和/或唯一约束。确保此字段是唯一的

如有需要,请参阅此问题:

对于两个字段的组合是唯一的,一种简单但不是很干净的方法是在视图中添加另一列,其中包含两个字段的串联,并将它们放在isnull()中。假设它是两个nvarchar(5):


视图中是否定义了主键it@AntoinePelletier没有。这是有道理的。如何为视图定义2字段主键?我没有唯一的字段;需要两个字段才能唯一。这可能吗?当然,我会编辑我的问题,但首先告诉我,如果您使用的是SQL SERVER,我将无法为其他人提供帮助technologies@djblois这里有一种方法可以做到这一点,无论数据库的类型是什么
select isnull(columnA + columnB, '1234567890'), columnA, columnB, ...