。NET核心代码可为空的对象的第一个错误

问题描述 投票:0回答:1

这是我的日志表:

public class Logs
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int id { get; set; }
    public DateTime Date { get { return DateTime.Now; } }
    public string Controller { get; set; }
    public string Action { get; set; }
    public string Text { get; set; }
    public bool isError { 
        get {
            return this._isError.HasValue ? this._isError.Value : false;
        }
        set {
            this._isError = value;
            this.isError = value;
        } 
    }
    private bool? _isError = null;
}

而且我不知道为什么要插入,例如:

var log = new Logs();
log.Action = "Send";
log.Controller = "Home";
log.Text = msg;
_context.logs.Add(log);

我收到此错误:

System.InvalidOperationException:'可为空的对象必须具有一个值。'

这是对象:

log error

private _isError变量除外,所有数据库列都有一个值。错误在哪里?

提前感谢!

c# .net ef-code-first core
1个回答
0
投票

为什么您的私有财产可为空,而您的公共财产却不为空?

我将删除您的私有财产,然后更改您的公共财产:

public bool IsError { get; set; }

由于您无论如何都不会返回'null',为什么要选择它?

© www.soinside.com 2019 - 2024. All rights reserved.