我有一个小项目,我想很快将一些数据导入我的数据库。对于像我的导入用户这样的对象,我更喜欢缓存对象以节省一些查询时间。所以我实现了这样的单例模式:
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();
我一步一步地完成了它。 在第一个请求中,它将从db中获取id为1的用户并按原样填充静态对象。然后其他人要求修改器,它查看静态对象并返回ID为1的用户,但之后它将在数据库中创建另一行,当有人要求它时,它将给用户id:12
我做错了什么?