拆分EDM以在多个项目中重用功能

时间:2011-01-30 13:50:46

标签: asp.net asp.net-mvc entity-framework entity-framework-4

我目前有一个ASP .NET MVC / EF4项目,其中包含许多自主功能,如博客,活动,竞赛,维基等。

每个系统使用的实体都通过一个巨大的EDM文件映射到我的数据库。

这适用于主站点,但我也有一些个人站点,我想重用主电源中的博客功能。

我最大的问题是,由于mac daddy EDM文件,我的博客网站必须不断更新其数据库模式,以反映对他们不使用的功能区域所做的更改(即更改事件系统)。

唯一的另一个问题是,有一些实体(用户和标签)与每个功能区域的实体有关系,因此很难简单地将每个功能区域拆分为自己的EDM。

所有这些都说明了,我正试图找出最有效的方法来设置它。

我是否应该按照每个区域(博客,活动,竞赛,维基)分割EDM并找出维护用户和标签实体关系的方法?

或者我应该为每个只映射实际需要的实体的网站创建EDM?唯一的问题是我的存储库层接受了UnitOfWork / ObjectContext,并且通过为每个站点创建新的ObjectContexts,我在重用我的存储库代码时遇到了问题。

1 个答案:

答案 0 :(得分:0)

您可以设置WCF服务,然后通过JSON合同传递数据。这样,您就拥有了一个保存EF数据的中央服务,然后根据您的不同应用程序需要公开功能。

更短期的设置工作(希望你的服务/存储库层是为了让它能够轻松插入而完成的,但是如果你的EF数据发生了很大的变化,那就意味着你可以更新一个中央服务无需更新每个客户端应用程序。

S.O上有一个很好的参考线程:https://stackoverflow.com/questions/973017/where-to-find-good-wcf-video-tutorials