[英]Entity Framework not saving data
我有一個包含以下屬性的模型:
public Guid UniqueID
{
get { return Guid.NewGuid(); }
}
如果在創建對象后檢查該對象,則可以看到已為UniqueID
字段正確創建了新的GUID。
但是,當我調用db.SaveChanges()
,我從Entity Framework中收到一條錯誤消息,指出盡管存在值,但它無法將NULL插入此字段。
有任何想法嗎?
編輯
private Guid _uniqueID = Guid.NewGuid();
public Guid UniqueID
{
get
{
if(_uniqueID == null){
_uniqueID = Guid.NewGuid();
}
return _uniqueID;
}
set
{
_uniqueID = value;
}
}
EF不支持僅獲取屬性。 從數據庫加載時,EF需要采取某種方式來設置值。 如果要使該字段不變,則可以使用私有設置器:
private Guid _uniqueID = Guid.NewGuid();
public Guid UniqueID
{
get
{
return _uniqueID;
}
private set
{
_uniqueID = value;
}
}
請注意,這與您的編輯略有不同。 我已經將setter if(_uniqueID == null)
private
,並取出了if(_uniqueID == null)
因為Guid
是一種值類型,並且永遠不能為null。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.