更改方法基类的返回类型

时间:2011-09-17 00:02:58

标签: c# mongodb

我有一个名为ProgramE的类,它是DataAccess的子类。我怎样才能创建一个返回调用类类型的泛型方法?

这是DataAccess类中的代码。

    public MongoCursor<DataAccess> GetAll(QueryComplete query)
    {
        MongoServer server = MongoServer.Create(C.connectionString);
        MongoDatabase db = server.GetDatabase(C.database);
        MongoCollection<DataAccess> collection = db.GetCollection<DataAccess>(_collectionName);
        var result = collection.FindAs<DataAccess>(query);

        return result;
    }

这是我想要做的。我收到这个错误。 “无法将类型'System.Collections.Generic.List'隐式转换为'System.Collections.Generic.List'”

        ProgramE p = new ProgramE();
        QueryComplete query = Query.EQ("InstalledOn.SystemID", audit.SystemID);

        List<ProgramE> ServerPrograms = p.GetAll(query).ToList();

1 个答案:

答案 0 :(得分:1)

这样的事情对你有用吗?

public MongoCursor<T> GetAll<T>(QueryComplete query) where T : DataAccess {
    MongoServer server = MongoServer.Create(C.connectionString);
    MongoDatabase db = server.GetDatabase(C.database);
    MongoCollection<T> collection = db.GetCollection<T>(_collectionName);
    return collection.FindAs<T>(query);
}

List<ProgramE> ServerPrograms = p.GetAll<ProgramE>(query).ToList();