Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Игнорировать свойство класса, кроме хранимой процедуры в EF Core

Автор вопроса: vaindilОтветов: 1

.NET Core 1.1.0, EF Core 1.1.0. Я запрашиваю некоторые вещи из своей БД таким образом, что гораздо эффективнее делегировать хранимой процедуре. Я хочу вернуть некоторые дополнительные вещи, которые не являются частью моего стандартного класса, поэтому до специального возврата типы поддерживаются Я добавил эти дополнительные свойства в свой базовый класс. Проблема, однако, в том, что EF теперь ожидает столбцы для каждого из этих свойств во время всех других вызовов.

Если я настрою эти дополнительные свойства следующим образом:

entity.Ignore(p => p.PropertyName);

свойства игнорируются, когда я извлекаю из хранимой процедуры. Я не знаю другого способа обойти это.

Как я могу получить эти дополнительные свойства, возвращаемые хранимой процедурой, но игнорировать их все остальное время?

Я выполняю такой запрос (документы ):

var popular = await _context.Posts
    .FromSql("EXEC usp_Post_Popular {0}, {1}", start, popCount)
    .ToListAsync();
  • Вам нужно обрабатывать разные сопоставления для вашего DbContext H. Herzl 29.12.2016

entity-frameworkentity-framework-core

Ответы

Ответ 1 · vaindil

Я смог решить эту проблему, создав новый класс исключительно для возврата результатов этих процедур. Я создал DbSet в своей конфигурации контекста для классов и вызвал для них .FromSql(). В OnModelCreating() нет необходимости в настройке; Я ничего не добавлял в эту функцию.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы