我有一个使用Ado .net Entity框架进行数据库操作的Web服务(WCF).I使用此框架生成所有实体。所以我的问题是我可以使用Entity框架生成的这些模型来引用我的MVC应用程序吗?如果没问题,那么就停止在MVC框架上编写Model,这样可以节省大量的时间。
总结并说清楚, 可以将wcf代理客户端用作mvc的视图模型。
答案 0 :(得分:2)
是的,绝对地,向WCF服务添加服务引用,定义一个存储库接口,该接口将表示您可以对模型类执行的操作,并且在此接口的实现中,只需使用自动生成的代理客户端调用服务。
现在剩下的就是拥有视图模型,这些模型将填补视图和来自WCF服务的模型之间的空白。
事实上,在一个设计合理的ASP.NET MVC应用程序中,控制器永远不应该知道数据的来源:它可以是SQL数据库,一些ORM框架,一个远程服务,...控制器应该使用的所有内容您已定义的此合约(存储库)以及视图模型和实际模型之间的映射。实际的数据操作应该由您的存储库的特定实现来执行。
答案 1 :(得分:1)
将生成的实体模型移动到单独的程序集,并从两个项目中引用程序集。
答案 2 :(得分:1)
是的,你可以。 MVC默认删除EF特定的properties。
在第一部分中,我们定义了一个 应该是拉出的方法 正确的默认逻辑 对象模板。你会注意到的 提到System.Data.EntityState (定义于 使用的System.Data.Entity.dll) 过滤掉某些实体框架 属性。如果您不使用实体 框架你可以安全地删除它 线。你会知道你不需要那个 如果你没有引用那么行 System.Data.Entity.dll会 导致这个代码爆炸了 铝箔在微波炉中。