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

.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();

person vaindil    schedule 29.12.2016    source источник
comment
Вам нужно обрабатывать разные сопоставления для вашего DbContext   -  person H. Herzl    schedule 29.12.2016


Ответы (1)


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

person vaindil    schedule 29.12.2016