我正在尝试填充我的数据库上下文,然后在循环结束时保存所有更改:
foreach (var kommune in valgkreds.Value.SubAreas)
{
var komExist = dbConnection.Omraade.FirstOrDefault(x => x.Id == kommune.Value.Id);
if (komExist == null)
{
Omraade k = new Omraade();
k.Id = kommune.Value.Id;
k.titel = kommune.Value.Name;
k.type_id = 3;
dbConnection.Omraade.Add(k);
Krydstabel_Omraade ko_kommune = new Krydstabel_Omraade();
ko_kommune.parent = valgkreds.Value.Id;
ko_kommune.child = kommune.Value.Id;
dbConnection.Krydstabel_Omraade.Add(ko_kommune);
Console.WriteLine(k.Id);
//Console.WriteLine(++i);
}
}
我正在检查是否已经使用以下行将对象添加到上下文中:
var komExist = dbConnection.Omraade.FirstOrDefault(x => x.Id == kommune.Value.Id);
即使已添加对象,它也始终返回null
。我猜这是因为它尚未保存到数据库中。在执行SaveChanges()
方法之前,如何检查它是否在上下文中?
答案 0 :(得分:1)
如果您使用的是EF 4.1+,它们包含一个“查找”方法,该方法允许您跟踪上下文中尚未持久保存到数据库的对象 -
http://msdn.microsoft.com/en-US/data/jj573936
虽然看起来只有在使用主键进行搜索时才会起作用。