Я использовал этот «Учебник. Обработка параллелизма - ASP.NET MVC с EF Core» для моих проверок параллелизма на протяжении всего проекта. https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/concurrency?view=aspnetcore-2.2
Я наткнулся на загадку на одной странице. Используя это, чтобы извлечь существующие данные в таблице
var PersonToUpdate = await _context.Customer
.Include(np => np.Person)
.SingleOrDefaultAsync(m => m.inputPersonID == PersonID);
Повсюду на сайте это будет работать
if (await TryUpdateModelAsync<CustomerModel>(RecordToSave, "Customer", s => s.Person.Forename)) {
но здесь проект не будет собран, и я получаю следующее сообщение об ошибке, несмотря на objPerson.Forename
автозаполнение, поэтому ссылки верны.
'PersonModel' does not contain a definition for 'Forename' and no accessible extension method 'objPerson' accepting a first argument of type 'PersonModel' could be found (are you missing a using directive or an assembly reference?)
Модель Person является родителем модели Customer, и все остальное с точки зрения загрузки и сохранения записи работает, если я удалю проверку параллелизма.
Есть идеи, что я делаю неправильно, или вы можете проверять параллелизм на моделях родитель / потомок? Должен ли я пройти две проверки параллелизма, одну для родителя, а другую для ребенка?