LINQ to SQL字段不会更新(有时)
|
我有一个使用以下方法的MVC Web应用程序:
public class MyController : Controller
{
public FooRepository fooRepository = new FooRepository();
public BarRepository barRepository = new BarRepository();
public ActionResult UpdateItems(int id, int range1, int range2)
{
Foo foo = fooRepository.GetItem(id);
List<Bar> bars = barRepository.GetItemsByRange(range1, range2);
// Some validation rules here...
DoSomeWork(foo, bars);
// Show confirmation / error message
}
private void DoSomeWork(Foo foo, List<Bar> bars)
{
foreach(int i = 0; i < bars.Count; i++)
{
bars[i].Prop1 = foo.Prop1; // This field is updated
bars[i].Owner = \"someuser\"; // This one too
bars[i].Status = BarStatus.SomeStatus; // This isn\'t...
}
foo.Status = FooStatus.SomeStatus; // Ok
// Calls DataContext.SubmitChanges()
fooRepository.SubmitChanges();
barRepository.SubmitChanges();
}
}
但是,在某些“随机”情况下(我看不到任何模式),如注释中所述,其中一个字段不会更新。
似乎LINQ无法识别该字段的更新,因此将其从生成的查询中排除。
谁能告诉我我是否在这里遗漏了什么东西,可能是什么原因引起的,和/或如何解决?
注意:在开发场景中,我没有任何异常,也无法验证这种情况。
没有找到相关结果
已邀请:
3 个回复
倾坞髓
森含械
当然只是猜测
臀博