Карта объекта для просмотра и таблицы - PullRequest
0 голосов
/ 06 мая 2019

Рассмотрим модель ниже.У меня есть Order класс и OrderLine класс.Order.TotalAmount вычисляется через представление, которое выполняет OUTER APPLY для всех Order.OrderLines.

[Table("SelectOrder")]
public class Order
{
    public decimal TotalAmount { get; set; }

    public virtual ICollection<OrderLine> OrderLines { get; set; }
}

[Table("SelectOrderLine")]
public class OrderLine
{
    public decimal Amount { get; set; }

    public virtual Order Order { get; set; }
}

. Я украсил свои классы TableAttribute, чтобы позволить Entity Framework Core получать данныеот взглядов до сущности.TableAttribute фактически указывает вместо этого на представление.

Теперь я хотел бы выполнять вставки, обновления и удаления.Это создает проблему, так как невозможно использовать представление с OUTER APPLY для этих изменений.Я пытался использовать типы запросов для этого, но вы не можете определить сущность как тип запроса и тип сущности.Это приводит к ошибке для меня.Таким образом, добавление TableAttribute с фактической таблицей, например, Order в сочетании с modelBuilder.Query<Order>().ToView("SelectOrder");, не работает.

Я мог бы создать отдельный класс SelectOrder, который отображается в представление, и сопоставить мою сущность Order сТаблица.Или я мог бы создать собственный атрибут и выполнить некоторую пользовательскую генерацию SQL, переопределив SqlServerQuerySqlGenerator.

Но прежде чем идти по этим дорогам ... Разве невозможно сопоставить сущность с обоими представлениями длявыбирает и таблицу для вставки, обновления и удаления?

1 Ответ

0 голосов
/ 07 мая 2019

Возможно, это не тот ответ, который вы ищете, но вы можете добавить вычисляемый атрибут OrderTotal в таблицу Order в базе данных.

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