0

所以我想用 MVC 4 和 Entity Framework 5 构建一个应用程序。我以前构建过简单的应用程序,但现在我需要一些安全措施来围绕我目前的工作......我有一些困惑/问题,我希望有人能回答;

首先...使用 MVC 4 Internet 应用程序模板,它实现了 SimpleMembershipProvider。我已经阅读了所有关于修改、实现的主要文章......但是,这使用了 Code-First 实现...... 问题:我有一个现有的数据库,我想将其方案导入到 EDMX 数据库优先方法......当我的数据库紧密且直接地绑定到用户表 (userid) 时,如何实现 MVC 4 Simple 成员资格提供程序?...我知道我可以使用我自己的用户表,只要我指定记录的用户 ID 和用户名字段。 .. 这会影响提供者还是现有的“AccountController”代码?这些需要修改吗?

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

4

1 回答 1

0

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

从 DB first 过渡到另一种心态时。关注对象如何相互交互。然后,在某些时候,您将保存对象交互后的状态。这就是 ORM 发挥作用的地方。检测更改并执行必要的 SQL 语句以保持对象的当前状态。

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

但也不要失去设计的视角。如果它是一个简单的表单数据应用程序,那么您将来会在其中添加功能,而不是保持设计简单。不要试图完全抽象数据库。你知道它就在那里,并且与 UI 的关系几乎是 1:1,所以好好利用它。

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

同样,如果它是一个简单的应用程序并且屏幕直接映射到数据库,那么 viewmodel 可能是矫枉过正的。

于 2013-05-09T19:13:22.410 回答