Не удалось отредактировать объект сущности asp.net

Это лучшее, что я думаю:

   for (int[] row : matrix){
    System.out.println(Arrays.toString(row));
   }
0
задан Atle Kristiansen 5 March 2019 в 18:09
поделиться

2 ответа

Да. Вы должны отобразить значения; вы не можете просто вставить другой экземпляр в одну и ту же переменную. Экземпляр в вашей модели представления не отслеживается, поэтому EF даже не подозревает, что с ним что-то нужно делать. Единственное, что он отслеживает, это экземпляр User, изначально сохраненный в entityObject, который вы фактически уничтожаете, заменяя значение переменной на экземпляр из вашей модели представления.

Поскольку это выполняется вручную, вы можете использовать что-то вроде AutoMapper, чтобы справиться с большей частью этого за вас, но есть нюансы использования подобной библиотеки отображений. По крайней мере, вам необходимо зарегистрировать сопоставления типов, но вам также может понадобиться создать собственные преобразователи или определить процедуры сопоставления вручную для сопоставленных типов. Это зависит только от того, что вы делаете, и от того, насколько сложной становится логика отображения.

Независимо от того, как вы делаете отображение, вы, безусловно, должны это делать. Здесь нет бесплатного обеда.

0
ответ дан Chris Pratt 5 March 2019 в 18:09
поделиться

Вы можете обновить значения, не перечисляя все свойства следующим образом:

var entity = _collection.Find(item.Id);
if (entity == null)
{
    return;
}

_context.Entry(entity).CurrentValues.SetValues(item);

Метод обновления Entity Framework работает так же.

Также существуют другие опции, такие как AutoMapper или Mapster.

0
ответ дан Moien Tajik 5 March 2019 в 18:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: