如何获得.Top(5)使用非通用EF db.Set(类型)

时间:2014-07-04 13:30:13

标签: c# .net linq entity-framework

我该如何实现?

public object[] GetFiveObjects(Type mytype){

    var db = new MyContext();
    return db.Set(mytype). ->Take(5) ???
}

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我不明白为什么非通用...... 或者我错过了一些观点?

这样的事情非常简单明了:

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

这样,您可以获得所需实体的前五个实体。

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

答案 2 :(得分:0)

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

public object[] GetFiveObjects(Type mytype){

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