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
不会反映在EFvwMyView
对象或myproc\u结果中
我是否需要使用一种特殊的技巧,以便在重新创建的EF6.edmx
中反映我的新专栏MyColumn
?这是您有时会遇到的一个怪癖吗?有时会发生,特别是当输出在运行时作为多态行为生成时(根据条件不同的结果集)
在EF中,对于结果集,可能需要明确地创建输出映射。无需删除整个EDMX,只需选择映射(MySproc_Result)并更新结果集以包含新列
是否在过程内部创建视图,然后返回其值
在视图中,检查是否有条件地添加了列(例如,如果type=Sales,则包括4列,如果type=Mgmt,则包括5列)。在此情况下,EF将拾取第一个匹配案例
最好的方法是更新映射并将新列设置为可空,以防某些条件使其不可用。我认为您需要通过右键单击itI来更新*.edmx文件。我完全删除了edmx文件,然后重新创建it@user9393635验证您的连接字符串。