存储库模式中出现NullReferenceException

本文关键字:NullReferenceException 模式 存储 | 更新日期: 2023-09-27 17:59:17

我使用的是Repository模式,在我的Repository.cs中,我的_dataContext对象返回null。我该怎么做才能使它不返回null?

  private BlogDataContext _dataContext;
        private readonly IDbSet<T> _dbset;
        private string[] _paths;
        public Repository(IDatabaseFactory databaseFactory)
        {
                DataContext.Database.Log = Console.Write;
                DatabaseFactory = databaseFactory;
                _dbset = DataContext.Set<T>();
        }
        protected IDatabaseFactory DatabaseFactory
        {
            get;
            private set;
        }
        protected BlogDataContext DataContext
        {
            get { return _dataContext ?? (_dataContext = DatabaseFactory.Get()); }
        }

存储库模式中出现NullReferenceException

主要问题是您的DatabaseFactory属性有一个私有的setter,因此您无法直接为其分配任何内容。因此,您要做的是创建一个私有IDatabaseFactory字段,将构造函数参数databaseFactory分配给该字段,并将其返回到DatabaseFactory属性的getter中,或者将DatabaseFactory属性setter方法公开。