Entity Framework 4.0 的一个bug :DefaultValue问题
其實是一個很常用的場景:某個字段比如是不可為空bit型的,在數(shù)據(jù)庫里設(shè)置了默認值為1,對應的屬性類型自然是bool.
使用VS2010的模型編輯器更新了Model信息后,進行插入測試,沒有對該字段賦值,因為是不可空bool類型,我們知道,在new這個對象的時候,如果沒有顯示指定,該屬性一定是false的。但因為數(shù)據(jù)庫設(shè)置了默認值,所以我們希望的結(jié)果應該是true。但實際的結(jié)果卻是false,說明,數(shù)據(jù)庫的默認設(shè)置在EF下沒起作用。
解決方案:
第一步:手工使用xml編輯器打開edmx文件,找到相應的實體和屬性,手工加上如下信息:
<Property Name="IsVisible" Type="bit" Nullable="false" DefaultValue="true" />第二步:使用模型瀏覽器,找到相應的實體屬性,并設(shè)置默認值
保存之后,再次測試,現(xiàn)在結(jié)果正常了,如果insert的時候不設(shè)置該屬性,則會按照數(shù)據(jù)庫的默認設(shè)置新增,如果update的時候,就按照具體的字段值來更新了。
從網(wǎng)上搜了下,也找到類似的問題:
可參考:https://connect.microsoft.com/VisualStudio/feedback/details/505178/storegeneratedpattern-property-in-ado-net-entity-model-designer-sets-cdsl-annotation-but-not-ssdl-attribute#
http://connect.microsoft.com/VisualStudio/feedback/details/611665/storegeneratedpattern-does-not-saved-properly-into-edmx-entity-framework-4-0
該問題不知道在4.1里面修復了沒有,如果有用過的朋友請告知 一下,不勝感激??紤]到項目情況,暫時還不打算升級到4.1。
轉(zhuǎn)載于:https://www.cnblogs.com/qiuliang/archive/2011/09/07/2170181.html
總結(jié)
以上是生活随笔為你收集整理的Entity Framework 4.0 的一个bug :DefaultValue问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 委托/事件的重写
- 下一篇: HTML简单实例加表单的显示效果