如何在使用非泛型EF db.Set(type)时获得.top(5)

本文关键字:type top Set db EF 泛型 | 更新日期: 2023-09-27 18:11:23

我该怎么做呢?

public object[] GetFiveObjects(Type mytype){
    var db = new MyContext();
    return db.Set(mytype). ->Take(5) ???
}

如何在使用非泛型EF db.Set(type)时获得.top(5)

var db = new MyContext();
return db.Set(mytype).OfType<object>().Take(5)

我不明白为什么非通用…还是我遗漏了什么?

这样的内容非常直接和简单:

public IEnumerable<T> GetFirstFive<T>() where T : EntityObject
{
    Entities dbContext = new Entities();
    return dbContext.CreateObjectSet<T>.Take(5);
}

这样,你可以得到你想要的任何实体的前五个实体。

无论如何,好的问题会带来更好的答案。

最简单的方法是使用.Cast<object>(),即:

public object[] GetFiveObjects(Type mytype){
    var db = new MyContext();
    return db.Set(mytype).Cast<object>().Take(5).ToArray();
}