自从我和EF和OData合作已经有几年了。当时,OData在WebAPI上被限制在一些URL过滤器上,但即使是在MVC 4 RTM之前的最后一分钟,也是如此。
很多事情都变了。
现在我有了一个模型--第一个带有EDMX文件的EF6项目,因为我喜欢可视化地规划我的模型。我还在为这个应用程序构建一个OData服务,使用WebAPI 2.2和OData 4.0。
下面是对这个问题的评论:
不幸的是,此时EF使用的EDM模型与Web使用的EDM模型不同。
这是可以理解的,分离是最好的公共API。
但是,我很困惑,因为web上的快速入门教程(见下文)似乎对OData和数据库都使用了相同的EF (代码优先)模型。
这是否意味着模型不再不同,上面的评论已经过时了?或者,如果我只想公开我的数据库模型,那么它是否意味着我必须先进行代码处理?
既然教程似乎展示了一个单独的EF数据库模型,那么如何分离和拥有两个模型呢?
我很难找到/信任在线资源,因为这些技术发展得太快了。
卢克
发布于 2015-01-08 13:58:44
这是我到目前为止学到的东西。
截至2015年1月,重要的,既不支持v4,也不支持v4。元数据是不同的,我认为是因为缺乏正式的关系。这使得v4目前不太有吸引力,特别是当WCF数据服务可以在几秒钟内从现有的EDMX构建完整的服务时。
更新
1/
代码-首先来自现有的:
http://msdn.microsoft.com/en-us/library/jj200620.aspx
2/
如果使用fluent API,则可以通过应用[NotMapped]或modelBuilder.Ignore<InMemClass>();从EF模型中排除实体,即使它们在其他实体中被引用。
卢克
https://stackoverflow.com/questions/27803840
复制相似问题