Общий метод для получения списка для каждого класса Entity Framework - PullRequest
0 голосов
/ 06 июня 2018

У меня есть этот метод для моего класса Entity Framework (v6), чтобы получить все элементы в этой таблице из моей базы данных:

List<FooClass> GetAll_FooClass()
{
    return dbContext.FooClass.ToList();
}

Итак, я хотел бы, чтобы метод выполнял то же самое, нобудет использоваться для каждого класса сущностей, который у меня есть (индивидуально я имею в виду).

Возможно ли это, и если да, то как я могу это реализовать?

РЕДАКТИРОВАТЬ: Мне кажетсяошибочно принять FooClass за класс, тогда как это свойство объекта dbContext.

public class MyDbContext : DbContext
{
    public MyDbContext()
    { }

    public virtual DbSet<FooClass> FooClass { get; set; }
}

Поэтому я пытаюсь использовать System.Type прямо сейчас ( PropertyInfo и MethodInfo ).

1 Ответ

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

Вы можете использовать универсальный метод, который принимает тип объекта.Например:

public List<TEntity> GetAll<TEntity>() 
    where TEntity : class //This is important as the Set method requires it
{
    //Obviously don't do this, but for completeness:
    var dbContext = new MyContext();

    //And here is the real 'magic':
    return dbContext.Set<TEntity>().ToList();
}

Чтобы использовать его, предполагая, что у вас есть контекст, который выглядит примерно так:

public class MyContext : DbContext
{
    public DbSet<Zombie> Zombies { get; set; }
    public DbSet<Human> Humans { get; set; }
}

Вы бы назвали это так:

var allOfTheZombies = GetAll<Zombie>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...