使用Entity Framework按类型加载数据

时间:2015-06-18 20:05:22

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

我想做

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。

1 个答案:

答案 0 :(得分:0)

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

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

然后:

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

请参阅MSDN