[英]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.