我不斷收到此錯誤:EF 4.1空插入GUID是不是空
無法將NULL值插入列 'ID',表 'database.dbo.Employees';列不允許有空值。 INSERT 失敗。\ r \ n聲明已終止。
但對象具有這個屬性Guid.NewGuid()
設置我使用實體框架4.1和.NET Framework 4.0。
該列是主鍵而非空。我沒有使用Code First方法。
編輯:如果我手動編輯文件edmx,似乎運行自定義工具不會更新文件。
我不斷收到此錯誤:EF 4.1空插入GUID是不是空
無法將NULL值插入列 'ID',表 'database.dbo.Employees';列不允許有空值。 INSERT 失敗。\ r \ n聲明已終止。
但對象具有這個屬性Guid.NewGuid()
設置我使用實體框架4.1和.NET Framework 4.0。
該列是主鍵而非空。我沒有使用Code First方法。
編輯:如果我手動編輯文件edmx,似乎運行自定義工具不會更新文件。
如果標記的關鍵特性,如用流利的API或數據註解你的模型自動生成的身份會發生這種情況?
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
...(其具有的效果是EF不會將Id
值發送到數據庫,因爲它期望在那裏生成密鑰),但在數據庫表中,您沒有指定Id
列的默認值爲newid()
,因此數據庫不會生成新密鑰。
我想要將Guid
值從客戶端手動發送到數據庫從模型中刪除DatabaseGeneratedOption.Identity
規範。
導致錯誤的問題是運行自定義工具沒有完全更新實體。從SQL插入工作,所以我試圖恢復從Slauma建議的變化和實體的其他變化。
仍然沒有解決問題 –
我發現問題,但你的建議答案不是問題。 –
我會給你+1,因爲你在EF中教給我一些新的東西。但似乎如果我手動編輯文件運行自定義工具將無法正確更新實體 –