Entity framework 执行非泛型DbContext.Set?
我需要执行一个动态集合类型,下面是我要做的:Entity framework 执行非泛型DbContext.Set?,entity-framework,ef-code-first,code-first,dbcontext,dbset,Entity Framework,Ef Code First,Code First,Dbcontext,Dbset,我需要执行一个动态集合类型,下面是我要做的: var type = GetSetType(); //System.Type var set = context.Set(type); var results = set.ToArray(); 我知道这不能肯定,Enumerable ex.方法仅适用于泛型IEnumerables,但我尝试了set.AsQueryable.Cast.ToArray,并引发了NotSupportedException:LINQ to Entities仅支持强制转换ED
var type = GetSetType(); //System.Type
var set = context.Set(type);
var results = set.ToArray();
我知道这不能肯定,Enumerable ex.方法仅适用于泛型IEnumerables,但我尝试了set.AsQueryable.Cast.ToArray,并引发了NotSupportedException:LINQ to Entities仅支持强制转换EDM基元或枚举类型
有没有办法执行一个非通用的DbSet?我应该删除我的问题,因为答案太简单了,但是为了记录在案,让我们继续吧
namespace System.Linq
{
public static class EntityFrameworkExtensions
{
public static IEnumerable<object> AsEnumerable(this DbSet set)
{
foreach (var entity in set)
yield return entity;
}
}
}
请注意,对重新调整的集合执行的任何筛选都不会发生在SQL server上,但会在集合枚举器上返回整个表。仅在加载所有行时使用。我应该删除我的问题,因为答案太简单了,但为了记录在案,让我们继续吧
namespace System.Linq
{
public static class EntityFrameworkExtensions
{
public static IEnumerable<object> AsEnumerable(this DbSet set)
{
foreach (var entity in set)
yield return entity;
}
}
}
请注意,对重新调整的集合执行的任何筛选都不会发生在SQL server上,但会在集合枚举器上返回整个表。仅在加载所有行时使用