Asp.net web api 将WCF数据服务OData提供程序转换为Web API的最简单方法是什么?
我目前正在研究将我们当前的WCF数据服务OData提供商转换为Web API OData的可行性 我只是对Web API的OData实现有点困惑。使用WCF数据服务,它位于ADO.Net实体模型的顶部,该模型公开了SQL Server后端的一组表,即,您将ADO模型交给WCFDS生成,然后您可以通过标准OData语法访问所有表 使用目前为止所有阅读资料中的Web API,我们是为每个要公开的表/对象创建控制器还是单独的操作?我错过什么了吗?ODataWebAPI控制器是否可以通过ADO数据模型公开整个模型?必须为每个表创建一个操作将是一个混乱和过度的过程 当前,如果我们需要添加一个表,我们只需将其映射到EDMX中,WCFDS将自动公开它,因为它映射到模型的整个上下文。生成模型 你可以:Asp.net web api 将WCF数据服务OData提供程序转换为Web API的最简单方法是什么?,asp.net-web-api,odata,wcf-data-services,Asp.net Web Api,Odata,Wcf Data Services,我目前正在研究将我们当前的WCF数据服务OData提供商转换为Web API OData的可行性 我只是对Web API的OData实现有点困惑。使用WCF数据服务,它位于ADO.Net实体模型的顶部,该模型公开了SQL Server后端的一组表,即,您将ADO模型交给WCFDS生成,然后您可以通过标准OData语法访问所有表 使用目前为止所有阅读资料中的Web API,我们是为每个要公开的表/对象创建控制器还是单独的操作?我错过什么了吗?ODataWebAPI控制器是否可以通过ADO数据模型公
- 使用来自ASP.NET Web API的。这将生成与EF自己的约定模型生成器生成的模型不同的模型:EdmLib
。看看是先使用模型还是先使用数据库。这种方法似乎真的很落后,确实如此,但它基本上是有效的IEdmModel
- 序列化EF模型并将其重建为
(请参阅)。同样,这是非常低效的。如果使用模型优先或数据库优先,则只需反序列化EDMX文件以构建IEdmModel
。它仍然在内部生成一个不同的模型,但至少CDSL是一种比CLR代码约定更稳定的格式,因此,与使用两个不同的基于约定的模型构建器相比,您可能不会感到意外IEdmModel
- 如果您最终得到一组具有Web API的基本相同的控制器,每个控制器只映射到一个实体,那么您的API是高度面向数据的使用WCF数据服务
- 如果您最终使用WCF数据服务执行了大量OData操作和笨拙的实体,那么您需要在API的服务器端使用更多的域逻辑,而面向数据并不能为您提供足够的功能使用Web API。这里有一个很好的经验法则,就是像处理SQL DBMS中的存储过程一样处理OData操作。实际上,将任何OData服务器都视为DBMS,因为它们就是DBMS。如果你不想把它放在SQL接口后面,就不要把它放在OData接口后面