2013-05-09 33 views
0

所以我想用MVC 4和Entity Framework 5构建一个应用程序。我之前构建了简单的应用程序,但现在我需要一些安全措施,我希望有人能够回答一些混淆/问题;使用MVC 4 - EF 5 - SimpleMembershipProvider的工作流程

首先...使用MVC 4 Internet应用程序模板实现SimpleMembershipProvider。我已阅读每篇关于修改,实现的主要文章...但是,这使用Code-First实现... 问题:我有一个现有的数据库,我想将该计划导入EDMX数据库第一种方法。 。当我的数据库紧密地并且直接连接到用户表(用户标识符)时,我如何实现MVC 4 Simple成员资格提供程序?...我知道只要我指定用户标识和用户名字段,我就可以使用自己的用户表...这会影响提供者或现有的“AccountController”代码吗?这些需要修改吗?

二,我正在寻找的是这种架构的工作流程......我是“老派”主要是数据库的第一种方法......我的项目是一个巨大的WIP(正在进行中)。我有一个基础,但需要根据需要进行扩展......有人可以提供一些关于数据库优先与其他方法的深入见解,哪里会有相当多的变更管理发生?

回答

0

您仍然可以使用Code First映射到现有数据库。您可能需要将属性明确映射到表列,因为映射不遵循默认约定,但这并不妨碍您使用Code First。

从DB首先转换到另一个想法时。关注物体如何相互作用。然后,在某些时候,您将在交互后保存对象的状态。这是ORM进场的地方。检测更改并执行必要的SQL语句以保持对象的当前状态。

将数据库视为另一个存储容器。理论上它可以被另一个永久存储机制(文档数据库,文件,持久性哈希表,内存列表等)所取代。实际上并不那么简单,但将DB视为一个简单的存储容器的想法有助于摆脱大多数开发人员所熟悉的单一数据库概念。

但是不要放松设计的视角。如果它是一个简单的form-over-data应用程序,您将在未来添加功能,而不是简化设计。比不尝试完全抽象数据库。你知道它在那里,与用户界面的关系几乎是1:1,所以要充分利用这一点。

在它最简单的形式之间的分离可以通过使用MVC控制器来管理模型(通过ORM映射到数据库)和视图(剃刀模板)之间的交互来实现,我的个人偏好是保持ORM不被所以我通常查询数据库,将域模型映射到视图模型,然后将视图模型传递给视图。

再次,如果它是一个简单的应用程序和屏幕直接映射到数据库比viewmodel可能矫枉过正。