EF查询创建上下文实体对象

来源:互联网 发布:优惠券源码 编辑:程序博客网 时间:2024/06/06 09:24

EF查询上下文实体对象在多线程模式下必须得一个方法对应一个实例,即:

/// <summary>
        /// 新增
        /// </summary>
        /// <param name="data">ConsumeRecord</param>
        public void AddConsumeRecord(ConsumeRecord data)
        {
            ExceptionBaseEx.VerifiParamIsNull(data, "data");
            ExceptionBaseEx.VerifiParamsIsNullOrWhiteSpace(data.KeyId, "data.KeyId");


            ConsumeRecordModelContext context = new ConsumeRecordModelContext();
            context.Entry(data).State = System.Data.Entity.EntityState.Added;
            context.SaveChanges();
        }

不能够使用下面这种的方式创建对象实例,即:

private ConsumeRecordModelContext baseContext = null;
        public ConsumeRecordDaoIntf()
        {
            baseContext = new ConsumeRecordModelContext();
        }

否则会出现多线程错误,即每个对象都访问同一个实例,这样会造成线程不安全,无法获取当前操作的实例对象的状态。

原创粉丝点击