Как создать репозиторий с ядром EF для объекта Value в asp.net Boilerplate - PullRequest
0 голосов
/ 26 июня 2018

Я создал второй dbContext, используя шаблон запуска ядра ABP .net.Это все работает нормально, но второй dbContext используется только для извлечения данных из представления.

У меня есть класс, который отображается на представление, но это представление не имеет первичного ключа.И если бы было бы иметь первичный ключ, это был бы составной ключ.

Так что я не могу извлечь этот класс из Entity, поэтому я решил извлечь его из ValueObject.

Но ABP не создает репозитории для ValueObjects afaik.

Поэтому мой вопрос заключается в том, как создать собственный основной репозиторий .net для ValueObject.(Мне нужна только реализация GetAll, так как это будет репозиторий только для чтения)

1 Ответ

0 голосов
/ 26 июня 2018

Вы можете получить от Entity и настроить свое представление в OnModelCreating вашего DbContext для сопоставления свойства Id со столбцом.

modelBuilder.Entity<YourEntity>().Property(t => t.Id).HasColumnName("YourColumn");

В противном случае вы можете получить путем внедрения зависимости IDbContextProvider и использовать его как простой DbContext

private readonly IDbContextProvider<TDbContext> _dbContextProvider;

public YourService(IDbContextProvider<TDbContext> dbContextProvider)
{
    _dbContextProvider = dbContextProvider;
}

public void MethodName(){
    var context = _dbContextProvider.GetDbContext();
    context.YourEntity.OrderBy(a => a.Name);
}
...