【问题标题】:How can I define IQueryable in proto file如何在 proto 文件中定义 IQueryable
【发布时间】:2019-12-10 03:10:48
【问题描述】:
我有
public System.Linq.IQueryable<Models.MyDbModel.ACTION> Get()
{
}
public System.Web.Http.IHttpActionResult Put(int id,
Models.MyDbModel.ACTION ACTION)
{
}
我需要在我的 proto 文件中定义它
【问题讨论】:
标签:
c#
protocol-buffers
grpc
protobuf-net
proto
【解决方案1】:
IQueryable[<T>] 是一个非常复杂的 API,它将延迟查询表示为 AST(表达式树)。 当然在 gRPC 的一般情况下是行不通的;它可能可以在非常具体的实现中以仅限 .NET 的方式表达,但它需要有人编写与序列化和反序列化 AST 相关的所有代码,和 AFAIK 迄今为止还没有发生过。所以:今天我会说:不要那样做。以常规 .proto 方式编写查询。如果您希望某个特定库(例如 protobuf-net)考虑实现 AST 版本,那么可以在该库的 repo 上讨论。