【发布时间】:2015-01-30 07:50:44
【问题描述】:
我与 EF 和 OData 合作已有几年了。那时,WebAPI 上的 OData 仅限于一些 URL 过滤器,但即使是在 MVC 4 RTM 之前的最后一分钟也被取消了。
很多东西都变了。
现在我有一个带有 EDMX 文件的模型优先 EF6 项目,因为我喜欢直观地规划我的模型。我还在为这个应用程序构建一个 OData 服务,使用 WebAPI 2.2 和 OData 4.0。
下面的问题有评论:
“很遗憾,此时 EF 使用的 EDM 模型与 Web API OData 使用的 EDM 模型不同。”
这是可以理解的,分离最适合公共 API。
但是,我很困惑,因为网络上的快速入门教程(见下文)似乎对 OData 和数据库使用相同的 EF(代码优先)模型。
这是否意味着模型不再不同,上面的评论是旧的?或者这是否意味着如果我只想公开我的数据库模型,我必须先使用代码?
既然教程似乎展示了一个单一的 EF 数据库模型,那么如何分离并拥有两个模型呢?
我很难找到/信任在线资源,因为这些技术发展迅速。
卢克
【问题讨论】:
-
我感觉代码优先已经赢了。我还发现解开 OData 和 EF 模型的想法是不切实际的,因为 IQueryable 接口必须直接通过 API 运行到 ORM/数据层。这消除了将 WebApi 用于 OData 的大部分好处,因为我只能有一个模型,所以我不妨先使用 EF 模型,然后让 WCF 数据服务将其全部打开到 Excel。
标签: asp.net-mvc entity-framework asp.net-web-api odata