我正在 SQLExpress DB 上构建一个 MVC3 EF Code First 应用程序。每当架构发生变化或类似的事情时,数据库都会自动生成,这对我来说非常重要。现在我正在向我的应用程序添加身份验证,并且我查看了 MVC 附带的身份验证框架。但是,看起来每次生成新数据库时都需要我运行 aspnet_regsql.exe。我真的需要身份验证表与我的应用程序数据库位于同一个数据库中。
我基本上想知道我的选择是什么;
我可以在正确的方向上使用一些指针。
最佳答案
您可以从 CodeFirst Membership Provider
开始- 首先是基于代码的自定义提供程序 - 并在需要时对其进行扩展(还请阅读网站上的推荐用法)。
以上是 IMO 的最佳方式,因为您可以真正整合两者(例如,如果您可能需要直接访问例如成员资格表、与您自己的用户/客户表等相关的内容)。
但你还有其他选择......
a) 编写自己的 Db 初始值设定项并对数据库进行播种(就像这里建议的 https://stackoverflow.com/a/5462981/417747 。注意:您可以使用不同的方法,从运行 aspnet 表 SQL 脚本到为 aspnet 表创建模型等)或
b) 使用“保留”数据库的 Db 初始值设定项 - 并首先使用 aspnet 表准备数据库
c)(最后但并非最不重要的)使用迁移(正如@Chris 正确建议的那样)。迁移非常强大。你可以运行 Update-Database -Script
生成 SQL 而不是更改数据库 - 然后将其组合(与 aspnet 脚本或种子数据库)并使用它来创建或更新数据库。迁移需要一些学习,但对于更复杂的事情来说,同样值得付出努力。
希望这可以帮助
关于asp.net-mvc-3 - MVC3 : EF Code First and authentication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10362607/