У меня есть веб-приложение MVC, использующее следующий подход:
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 не распознает обновление поля, поэтому оно исключается из сгенерированного запроса.
Может кто-нибудь сказать мне, если я 'я что-то здесь упускаю, что может быть причиной и / или как я могу это решить?
Примечание: Я не получаю никаких исключений и не могу проверить этот случай в разработкесценарий.