EF:在数据库中搜索新创建的对象并更新冲突中的旧对象

时间:2012-12-15 08:52:27

标签: c# asp.net-mvc entity-framework linq-to-entities

我们有一个名为Model1的模型,它有两个属性。 Model1.TimeModel1.TextModel1.Value当然也有ID作为要求。

我们正在从SOAP服务接收值并将它们注册到我们的数据库,但问题是:我们必须检查这些值是否已经可用。最好的方法是什么?

基本上我们使用的是linq查询。

DataContext db = new DataContext();
var x = (from y in db.Models where y.Value != new.Value && y.Text != new.Text select y).toList();
if  { (x.Count == null) db.Models.Add(new); }
else {
foreach (var y in x) {
if (y.Time < new.Time) {
     y.Time = new.Time;
     y.Value = new.Value;
     y.Text = new.Text;
     db.ObjectStateManager.ChangeObjectState(y, EntityState.Modified);
}
}
db.SaveChanges();
}

你认为那样;这是唯一可行的方法还是有更合适的解决方案?

1 个答案:

答案 0 :(得分:0)

如果您没有该服务提供的身份证,那么我认为您拥有的是您能做的最好的事情。或者至少近似最好的。如果不了解您的用例或您想要保存的内容,很难为您提供更好的解决方案。

你有什么工作吗?您发布的代码是否有更具体的内容需要帮助?