【问题标题】:Load data by type using Entity Framework使用实体框架按类型加载数据
【发布时间】:2015-06-18 20:05:22
【问题描述】:

我想做

List<ISomeInterface> result = new List<ISomeInterface>();
foreach(Type type in someAssem.GetTypes.IsAssignableFrom(ISomeInterface))
        result.AddRange(LoadType(type));

是否可以按类型加载实体?我只需要加载它们,不需要更多操作。我更喜欢在我的解决方案中使用代码优先和 TPT 或 TPC 层次结构。

我见过一些通用的存储库模式,但它们都需要通过类。使用 Entity Framework 6 和 .NET 4.5。

【问题讨论】:

    标签: c# .net entity-framework-6 .net-4.5


    【解决方案1】:

    您可以使用接受Type 参数的DbSet.Set() 方法:

    public IEnumerable<T> LoadType<T>(Type type)
    {
        return context.Set(type).Cast<T>();
    }
    

    然后:

    result.AddRange(LoadType<ISomeInterface>(type));
    

    MSDN

    【讨论】:

    • 我没有解决我的问题,因为我的上下文中没有任何 DbSet。我在运行时动态构建模型并希望访问它非通用 DbSet。我敢肯定,如果我在我的上下文中有模型,你的解决方案会对我有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 2013-08-07
    • 1970-01-01
    • 2019-09-05
    • 2017-07-23
    • 1970-01-01
    相关资源
    最近更新 更多