我在MyColumn
中向vwMyView
添加了新列MyDB
。 MyDB
有一个存储过程MySproc
,它在select语句中返回vwMyView.*
。
当我执行MySproc
时,vwMyView.MyColumn
包含在结果集中。但是,当我重新创建EF6 .edmx
数据模型时,MyColumn
对象或vwMyView
中没有反映MySproc_Result
。
我需要使用特殊技巧,以便我的新列MyColumn
反映在重新创建的EF6 .edmx
中吗?这有时是你遇到的怪癖吗?
答案 0 :(得分:0)
有时会发生,特别是当输出作为多态行为生成运行时(基于条件的不同结果集)
在EF中,对于结果集,可能需要明确创建输出映射。无需删除整个EDMX,只需选择映射(MySproc_Result)并更新结果集以包含新列。
您是在过程中创建视图然后返回其值吗?
在视图中,检查列是否有条件地添加(例如,如果type = Sales,则包括4列,如果type = Mgmt,则包括5列)。在这种情况下,EF将获得第一个匹配案例。
最好的方法是更新映射并将新列设置为可为空,以防某些条件使其不可用。