实体框架不加任何请求地继续添加行

时间:2016-10-07 08:21:36

标签: c# entity-framework

我有一个小项目,我想很快将一些数据导入我的数据库。对于像我的导入用户这样的对象,我更喜欢缓存对象以节省一些查询时间。所以我实现了这样的单例模式:

 public static class CacheHelper
 {
        static User _user; 
        public static User Modifier
        {
            get
            {
                if (_user == null)
                {
                    using (var db = new BerendsensDataContext())
                    {
                        _user = db.Users.First();
                    }
                }
                return _user;
            }
        }
   }

因此,每当我需要用户时,我只需编写CacheHelper.Modifier,并将用户对象添加到我的对象中,如下所示:

         db.Customers.Add(new Customer()
           {
                ModifyDate = DateTime.Now,
                Modifier = CacheHelper.Modifier,
            });
            db.SaveChanges();

此过程将在我的应用程序的每次运行中添加用户: enter image description here

我一步一步地完成了它。 在第一个请求中,它将从db中获取id为1的用户并按原样填充静态对象。然后其他人要求修改器,它查看静态对象并返回ID为1的用户,但之后它将在数据库中创建另一行,当有人要求它时,它将给用户id:12

我做错了什么?

0 个答案:

没有答案