在 Repository Concrete 中正确使用 C# 泛型 class

Correct use of C# Generics in a Repository Concrete class

我正在尝试创建一个 C# 存储库 Class,它使用泛型来访问 Couchbase 数据库。添加和读取的代码如下所示...

public void Add<T>(string id, T entity) where T : class
{
    var doc = new Document<T>()
    {
        Id = id,
        Content = entity
    };

    activeBucket.Upsert(doc);
    return;
}

public T Read<T>(string id)
{
    var result = activeBucket.GetDocument<T>(id);
    return result;
}

Add 函数工作正常,我的问题是 Read 和返回的结果有一个强制转换问题:

Cannot implicitly convert Couchbase.IDocumentResult<T> to T

明白为什么会这样,试了好几次都解决不了。

非常感谢任何帮助,这让我有点发疯。

谢谢,

肖恩

如果我读 documents 正确,您只需 return Content,因为文档对象只是内容的包装器,包含一些额外的数据请求结果:

return result.Content;