Entity Framework Core DBContext Datamodel в качестве переменной - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь создать общий фид списка со службой REST API в ASP.NET Core 2, используя Entity Framework Core.Я хочу ввести строку, которая будет определять, какая таблица используется для подачи.У меня возникают проблемы при инициализации общей переменной DBContext.DataModel, которой я могу назначить свой _context.Model для моей команды linq позже.Это будет вызывать мой контроллер.

public class ServiceRepository : IServiceRepository

    private readonly MyDataDbContext _context

    public ServiceRepository(MyDataDbContext context){
        _context = context;
    }
    public async Task<IEmumerable<GenericFeedResource>> GetFeed(string feedType){
        var feed = new ???  (What object to use?)

        switch(feedType)
            {
            case: "Feed1": feed = _context.Model1;
                break;
            ...
            }

        var data = await feed.Where(f => f.Inactive == false).ToListAync();

        ... var result = formatting of data

        return result;
}

1 Ответ

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

Если в контексте есть набор таблиц, каждая из которых предназначена для типов объектов, реализующих один и тот же базовый класс, вы можете использовать расширение .Cast<T>().

IEmumerable<GenericFeedResource> feed;

switch(feedType)
{
    case: "Feed1": 
        feed = _context.Model1.Cast<GenericFeedResource>();
        break;
}
...