Обновление значения таблицы до значения представления с использованием Entity Framework - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть список ресторанов, со связанным списком отзывов. Я сделал вид, который содержит идентификатор ресторанов и среднее значение рейтинга отзывов.

Рейтинг (просмотр в дБ):

Id   AvgRating (already calculated in sql based on all review ratings)
1    3.4
2    1.8

Ресторан (таблица в дБ):

Id    AvgRating    Name
1     ...          Wendys
2     ...          McDonalds

У меня есть список обоих этих объектов. Что было бы лучшим способом обновить Restaurant.AvgRating, чтобы он равнялся AvgRating представления? Что лучше сделать прямо в SQL или EF?

1 Ответ

0 голосов
/ 26 апреля 2018

В этом случае вы можете использовать метод db.Entry () вашего DBContext. Например:

public void updateAvg(List<Restaurante> restaurantes)
    {
        using (WebMVCContext db = new WebMVCContext())
        {
            foreach (var item in restaurantes)
            {
                db.Entry(item).State = EntityState.Modified;
            }

            db.SaveChanges();
        }
    }

Я использовал этот следующий класс:

public class Restaurante
{
    public int Id { get; set; }
    public double Avg { get; set; }
}

Метод Entry для обновления или вставки в контекст и SaveChanges для фиксации этих элементов в вашей базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...