2014-12-04 40 views
0

我一直在試圖找到更新設置爲StoreGeneratedPattern.Computed的實體模型的值的問題的解決方案,但沒有成功。正在更新StoreGeneratedPattern.Computed值

列[Active]的默認值在DB中設置爲true。最初我使用了StoreGeneratedPattern.Identity,但是當你更新一個Identity項時,你會得到錯誤'不支持'用'Identity'模式修改一個列'。 。我更改爲Computed,但沒有收到錯誤,但保存更改後,值不更新。

這裏是我的代碼:

Dim ent As New EntityModel 
Dim user As SP_User = (From a In ent.SP_User 
           Where a.usr_ID = 1 
           Select a).First 

For Each pho As SP_User_PhoneNumber In user.SP_User_PhoneNumber 
    Dim foundmatch As u_UserPhoneNumber = Array.Find(PhoneNumers, Function(p As u_UserPhoneNumber) p.PhoneNumberID = pho.usrp_ID) 
    If foundmatch Is Nothing Then 
     pho.usrp_Active = False 
    End If 
Next 

ent.SaveChanges() 
+0

我想你是計算列和列與默認值混淆。你甚至不能通過SQL更新計算列。 – 2014-12-04 08:23:18

+0

我同意我對此不太瞭解,因爲我一直在學習。你有關於如何做這項工作的建議嗎? – 2014-12-04 08:46:53

+0

是的,刪除'StoreGeneratedPattern'規範。 – 2014-12-04 08:48:04

回答

0

我的問題的解決方案是設置StoreGeneratedPattern爲none和默認值設置爲True。數據庫默認值仍設置爲True(1),因此如果插入不是來自EF,則允許數據庫設置值。如果數據類型不同,但在我的場景中解決方案有效,可能會有漏洞。