C# 添加到视图的列未被实体框架拾取?

C# 添加到视图的列未被实体框架拾取?,c#,.net,sql-server,entity-framework,C#,.net,Sql Server,Entity Framework,我在MyDB中的vwMyView中添加了一个新列MyColumnMyDB有一个存储过程myproc,它在select语句中返回vwMyView.* 当我执行MySproc时,vwMyView.MyColumn包含在结果集中。但是,当我重新创建EF6.edmx数据模型时,MyColumn不会反映在EFvwMyView对象或myproc\u结果中 我是否需要使用一种特殊的技巧,以便在重新创建的EF6.edmx中反映我的新专栏MyColumn?这是您有时会遇到的一个怪癖吗?有时会发生,特别是当输出在运

我在
MyDB
中的
vwMyView
中添加了一个新列
MyColumn
MyDB
有一个存储过程
myproc
,它在select语句中返回
vwMyView.*

当我执行
MySproc
时,
vwMyView.MyColumn
包含在结果集中。但是,当我重新创建EF6
.edmx
数据模型时,
MyColumn
不会反映在EF
vwMyView
对象或
myproc\u结果中


我是否需要使用一种特殊的技巧,以便在重新创建的EF6
.edmx
中反映我的新专栏
MyColumn
?这是您有时会遇到的一个怪癖吗?

有时会发生,特别是当输出在运行时作为多态行为生成时(根据条件不同的结果集)

在EF中,对于结果集,可能需要明确地创建输出映射。无需删除整个EDMX,只需选择映射(MySproc_Result)并更新结果集以包含新列

是否在过程内部创建视图,然后返回其值

在视图中,检查是否有条件地添加了列(例如,如果type=Sales,则包括4列,如果type=Mgmt,则包括5列)。在此情况下,EF将拾取第一个匹配案例


最好的方法是更新映射并将新列设置为可空,以防某些条件使其不可用。

我认为您需要通过右键单击itI来更新*.edmx文件。我完全删除了edmx文件,然后重新创建it@user9393635验证您的连接字符串。