带有实体框架的ASP.NET MVC4

我正在为具有不同数据库的多租户应用程序设计一个带有MVC4 Web应用程序的ASP.NET,以供不同的客户使用。

我打算使用实体框架,因为我是新手,我有以下问题,假设我遵循数据库优先模型。

  • 还需要生成EDMX文件吗? 换句话说,在EDMX中生成的实体模型是否足够了?还是需要创建另一层实体模型并将其映射到数据库?

  • 实体概念模型应该放在我的应用程序架构中? 我可以在一个单独的项目中使用我的所有模型(数据库模型,视图模型)吗?


  • 多租户将与父“客户”对象或类似的东西是相同的数据库,您是否构建一个多实例应用程序(不知道它是否与您的问题相关,但基于您如何部署应用程序的重要区别)?

    尽可能简单地回答您的其他问题:

  • 是的,你需要生成你的数据模型,你可以把它们放在任何你想要的地方。 这可能足以满足您的需求,但通常您也会想要构建一些自定义视图模型。
  • 如果您需要多个项目才能访问相同的模型,并且只想将它们保存在一个位置,请将它们提取到自己的项目中。 如果整个应用程序将包含在单个项目中,只需将其放入“Models”文件夹即可。

  • 从与NHibernate和EF竞争获得“不信任投票权”的日子开始,实体框架已经走过了很长一段路。 4.x用很多选择改变了你的结局,不幸的是很多文章引用了4.x,所以当你使用MVC 4时,你很可能会编写5.0版本,并且一些例子对于起床并跑步。

    EF Julie Lerman写了很多关于EF,Dbcontex和EF Code First的书籍。

    您可以跳过创建一个EDMX文件,优点和缺点来做到这一点。 如果你是核心编码人员,你希望开发POCO类,然后把它连接起来与你的数据库交谈,那很好。 或者,您可以使用EDMX。 您可以使用Model first,Migrations等其他变体。

    Code First is for both flexibility of whether you have an existing database or do not have a database.
    

    我个人喜欢有许多项目替换我的“DAL”是一个ProjectName.Data项目查看存储库模式(最终是工作模式单元)。

    你不想让业务逻辑和代码渗入你的控制器。 SRP(单一责任原则)保持你的控制器瘦。 Nerddinner和其他一些互联网上的MVC项目试图创造一个体面的结构。 MusicStore http://mvcmusicstore.codeplex.com/和Contoso http://contosontiermvc.codeplex.com/,虽然他们有一个mvc3主体结构,但您将会对如何构建数据有很好的了解。


  • 您可以通过尝试从现有数据库创建实体框架来从数据库生成。 (我认为你右键单击一个新模型的表面并从数据库生成)

  • 他们可以居住在一个不同的项目中,是的

  • 链接地址: http://www.djcxy.com/p/29155.html

    上一篇: ASP.NET MVC4 with Entity Framework

    下一篇: Asp.net mvc, entity framework, Poco