.net core 在.NET内核中没有HTTP的OData

.net core 在.NET内核中没有HTTP的OData,.net-core,odata,.net Core,Odata,我想使用没有HTTP的oData 场景:“负载平衡器”支持oData的服务接收来自 客户端,将它们放入队列(以序列化的形式),然后“后台”工作人员将其接收 来自队列的消息并处理请求(从数据中获取数据 存储和提供响应) 看起来,这些功能要么没有在MS oData libs中公开,要么太简单和明显(虽然对我来说不是),以至于没有人愿意在文档中突出显示 我看到它有点像(伪代码) 标准MS oData库(最好)提供了类似的功能,还是作为第三方库提供的功能?oData本身在Net Core中提供:-我不确

我想使用没有HTTP的oData

场景:“负载平衡器”支持oData的服务接收来自 客户端,将它们放入队列(以序列化的形式),然后“后台”工作人员将其接收 来自队列的消息并处理请求(从数据中获取数据 存储和提供响应)

看起来,这些功能要么没有在MS oData libs中公开,要么太简单和明显(虽然对我来说不是),以至于没有人愿意在文档中突出显示

我看到它有点像(伪代码)


标准MS oData库(最好)提供了类似的功能,还是作为第三方库提供的功能?

oData本身在Net Core中提供:-我不确定您的问题是什么?问题是如何在不启动http服务器的情况下使用aspnet.oData的出色功能,如路由、解析等。获取“request”(以json为例),调用适当的“controller”方法并获取结果,我不确定我是否理解。OData是一种查询语言,它将查询字符串解析为可以在数据库上执行的linq表达式。它通过某种WebApi存在于服务器上。如果OData不存在于WebApi或某种服务器上,您打算如何使用它?如果不需要服务器部分,为什么不直接使用Linq呢?我想我建议的场景可能已经澄清了问题。好像没有。获取http请求并将其放入队列的哑负载平衡器。后台工作人员从队列中获取请求并根据oData规范进行处理。好的,负载平衡是一种完全不同的技术,适用于不同的事情。负载平衡是跨多个服务器处理多个请求以提高可伸缩性的能力。OData是一种将查询从字符串转换为表达式的特定方法,用于实体框架通过IQueryable获取数据。OData需要直接作用于实体。为什么要让这些方法排队?
var model = GetEdmModel();
var processor = GetProcessor(); // something like ODataController in AspNet.oData - contains functions and whatever
var request = GetRequestFromQueueAndParse();
var uriPath = request.Path; // like "/Books" 
var queryString = request.QueryString; // like "$filter=price lt 50"
var method = request.Method; // GET or POST or ...
var body = request.Body; 

// *** here is what I am looking for ***
var response = SomeMagicODataHelper.ProcessQuery(model, processor, method, uriPath, queryString, body);

ProvideResponseBackToBalancer(response);