繁体   English   中英

实体框架不保存数据

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM