我有以下代码块,它基本上检查数据库中实体是否存在,并将其加载到上下文中以进行更新,或者在不存在时添加新实体。
using (var db = new Entities.DB.DConn())
{
//...
foreach (Account account in accounts)
{
bool isNewRecord = false;
Entities.DB.Account dlAccount = new Entities.DB.Account();
Entities.DB.Account exisitngAcct = db.Accounts.Where(x => x.GId == dlG.Id).FirstOrDefault(); //x.GId is NOT ad primary key
if (exisitngAcct != null)
{
dlAccount = exisitngAcct;
isNewRecord = true;
}
dlAccount.GId = dlG.Id;
dlAccount.AccountName = account.NameAtFI;
dlAccount.AccountNumber = account.AcctNumber;
dlAccount.AcctType = account.AcctType;
dlAccount.AsOfDate = account.DateCreated;
dlAccount.IsDeleted = false;
dlAccount.DateModified = DateTime.UtcNow.ToUniversalTime();
if (isNewRecord)
{
dldb.Accounts.Add(dlAccount);
}
db.SaveChanges();
}
}
我一直在研究如何将实体附加到上下文并使用EntityState,但是我不明白在我的示例中该如何编写代码。
有没有人可以帮助我展示更好,更有效的执行与上述相同操作的方法?我对EF还比较新,希望确保我正确地使用它。
感谢您能提供任何帮助。