使用 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
我想做
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