Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 可空对象上的.NET核心代码第一个错误_C#_.net_Ef Code First_Core - Fatal编程技术网

C# 可空对象上的.NET核心代码第一个错误

C# 可空对象上的.NET核心代码第一个错误,c#,.net,ef-code-first,core,C#,.net,Ef Code First,Core,这是我的日志表: 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 Ac

这是我的日志表:

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:“可为null的对象必须有一个值。”

这就是目标:

除了
private\u isError
变量外,所有数据库列都有一个值。 错误在哪里


提前谢谢

为什么您的私有财产可以为空而您的公共财产不能为空

我会移除您的私人财产,然后更改您的公共财产:

public bool IsError { get; set; }
既然无论如何都不会返回“null”,为什么要选择它呢

编辑:

我还认为这将导致设置iError属性的无止境循环:

set {
        this._isError = value;
        this.isError = value;
    } 
您正在公共属性设置器中设置公共属性。 只在这里设置私有属性就足够了,因为您在getter中返回私有属性的值

不过,这只是一个旁注,我仍然会移除私有财产并使用它

public bool IsError { get; set; }

旁注:
isError
的setter中存在StackOverflowException。请共享您的上下文配置,请=)确保您没有
所需的
属性。谢谢您的回答。那么,添加默认值的最佳方法是什么?