首页 文章

实体框架核心DBContext Datamodel作为变量

提问于
浏览 454
0

我正在尝试使用Entity Framework Core在ASP.NET Core 2中使用REST API服务创建通用列表提要 . 我想引入一个字符串来确定哪个表用于Feed . 我在初始化一个通用的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 回答

  • 1

    如果上下文具有一组表,每个表都用于实现相同基类的对象类型,则可以使用 .Cast<T>() 扩展名 .

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

相关问题