使用 Entity Framework 按类型加载数据

Load data by type using Entity Framework

我想做

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

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

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

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

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

然后:

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

MSDN