2012-01-30 68 views
2

如何在多个区域组织模型?我正在尝试使用区域来组织代码。我正在使用visual studio 2010 express,该项目位于asp.net mvc3代码优先开发被使用。互联网上的所有教程和参考文献仅讨论控制器和路线,但模型又如何?更确切地说,我寻找身边的建议:模型在asp.net mvc 3个区域

  1. 在一个区域将包含它自己的类模型文件夹,所以这里 应的DbContext放在哪里?我已经有一个dbcontext类 ,其中包含“根”模型文件夹中的多个dbset条目。我可以 有多个dbcontext存储其数据在同一个数据库?
  2. 我已经通过了asp.net mvc portable area项目,通过 mvccontrib,但是它仍然在asp.net mvc2中,但是是否只有这样才能在asp.net mvc 3中构建插件/组件?
  3. 除了区域/便携式区域,有没有更好的方法来组织 代码是这样的一种方式,可以简单地“插入”新的功能, 没有做太多的现有代码的变化?区域看起来 承诺,但我无法弄清楚应该如何放置模型 。
  4. 区域仅适用于控制器和视图分离吗?

回答

0
  1. 的的DbContext会在数据访问层或数据访问的文件夹来管理所有的数据访问文件。您将在您想要使用它们的模型中引用这些类。 是的!您可以有多个dbcontext将其数据存储在同一个数据库中。

  2. 没有想法。

  3. 我或我的团队所做的最好的方式是将视图/模型/控制器完全分开。这样,如果一个人 专用于视图或如何显示视图,则其他人可以为其编写控制器动作 。

  4. 我们不使用领域,因为当你的应用程序往往规模的指数的方式,您可能将失去的是什么地方举行?我的 口头禅:4个文件夹:View/Model/ViewModel/Controller。

任何其他人可能有不同的看法...

+0

“你可以有多个dbcontext存储其数据在同一个数据库”如何?是通过使用他们的construtor为每个dbcontext类显式提供数据连接字符串吗?它不会冲突EDM元数据? – 2012-01-30 23:48:17

0

我一直在寻找到可能的方式来实现的DbContext的模型级别分离,到目前为止我发现的是,有没有直接的方法使用Code-First将多个dbcontext存储在同一个数据库中。只有Model-First设计才有可能。使用代码优先的多个dbinitializers不起作用,因为所有尝试初始化数据库,只有第一个将成功。 但是,通过在orchard CMS和一些其他开源项目中使用DbModelBuilder动态创建数据库,可能会有一些解决方法。有人试过吗?请分享 ...

0
  1. 区域仅适用于视图模型分离。

区域的注册码很好地暗示了哪些区域用于区分路径和访问特定的控制器。 (认为​​逻辑用户界面单元)。为了组织你的代码,命名空间是选择的工具。

也许看看像Umbraco,Orchard甚至N2CMS,看看他们如何管理扩展。