Могу ли я изменить аннотацию данных во время выполнения в зависимости от типа хранимой процедуры, которую я вызываю - PullRequest
0 голосов
/ 23 апреля 2020

Привет, моя сущность - это ParameterDetail следующим образом:

public class ParameterDetail
{
    [Key]
    public int Id { get; set; }
    public string Name { get; set; }
    [NotMapped]
    public string Description { get; set; }
    //..other columns removed for brevity
    public int LookupValueId { get; set; }
}

Я вызываю свою хранимую процедуру и загружаю результаты следующим образом ...

        List<ParameterDetail> paramDetails = this.ParameterDetails.FromSqlRaw("EXEC dbo.GE_GetStartParameter @GuidelineName={0}", guidelineName).ToList();

Теперь все работает нормально, но Теперь я должен вызвать немного другую процедуру, которая не имеет LookupValueId ..

List<ParameterDetail> paramDetails =this.ParameterDetails.FromSqlRaw("EXEC dbo.GetParameterDetails @ParameterId={0}", nextParam).ToList();

Я не хочу добавлять другую EntityModel только для этого одного столбца .... Могу ли я использовать свойство Mapped (Data Аннотация) во время выполнения как-нибудь? Или может быть какое-то другое решение?

1 Ответ

0 голосов
/ 23 апреля 2020

Можно ли как-то использовать свойство Mapped (аннотацию данных) во время выполнения? Или может быть какое-то другое решение?

Нет, если вы хотите, чтобы EF выполнял отображение, по крайней мере, не очень хорошее. Вы не можете изменять атрибуты во время выполнения, но если вы используете конфигурацию Fluent, у вас может быть два разных DbContext подтипа, которые по-разному конфигурируют один и тот же класс сущностей. Но это не очень элегантное решение.

Вы всегда можете просто выполнить хранимую процедуру с помощью ADO. NET и отобразить данные так, как хотите.

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