添加了列以查看实体框架未被提取?

时间:2018-04-17 04:15:29

标签: c# .net sql-server entity-framework

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

当我执行MySproc时,vwMyView.MyColumn包含在结果集中。但是,当我重新创建EF6 .edmx数据模型时,MyColumn对象或vwMyView中没有反映MySproc_Result

我需要使用特殊技巧,以便我的新列MyColumn反映在重新创建的EF6 .edmx中吗?这有时是你遇到的怪癖吗?

1 个答案:

答案 0 :(得分:0)

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

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

您是在过程中创建视图然后返回其值吗?

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

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