簡體   English   中英

添加列以查看是否不會被實體框架接收?

[英]Column added to view not getting picked up by Entity Framework?

我在MyDB vwMyView中添加了新列MyColumn MyDB有一個存儲過程MySproc ,該過程在select語句中返回vwMyView.*

當我執行MySprocvwMyView.MyColumn將包含在結果集中。 但是,當我重新創建MyColumn .edmx數據模型時, MyColumn不會反映在EF vwMyView對象或MySproc_Result

我是否需要使用特殊技巧,以便將新列MyColumn反映在重新創建的MyColumn .edmx 有時會遇到這個怪癖嗎?

有時會發生,尤其是在運行時將輸出作為多態行為生成時(基於條件的不同結果集)

在EF中,對於結果集, 可能需要顯式創建輸出映射。 無需刪除整個EDMX,只需選擇映射(MySproc_Result)並更新結果集以包括新列即可。

您是在過程內部創建視圖然后返回其值嗎?

在視圖內部,檢查是否有條件地添加了列(例如,如果type = Sales,包括4列,如果type = Mgmt,包括5列)。 在這種情況下,EF將拾取第一個匹配的案例。

最好的方法是更新映射並將新列設置為可空值,以防萬一某些條件使其不可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM