【问题标题】:Create MVC4 Membership Database创建 MVC4 成员数据库
【发布时间】:2012-01-25 12:53:48
【问题描述】:

我熟悉aspnet_regsql.exe 来创建会员数据库(它会生成 11 个表)

但是,在我的 MVC4 项目中,VS2010 创建了一个成员数据库,其中只有六个表(Applications、Memberships、Profiles、Roles、Users 和 UsersInRoles)

如何使用这个(新的?)架构创建数据库?

【问题讨论】:

  • 您是在问是否可以使用新的 MVC4/ASP.Net 4.5 六表数据库架构创建一个前 MVC4 应用程序?
  • 好吧,MVC 4 中的提供者不一样了,MVC4 引入了新的提供者——nuget.org/packages/System.Web.Providers。感谢大家的帮助

标签: sql-server asp.net-mvc visual-studio-2010


【解决方案1】:

您需要做的就是:

更改您的 web.config 以指向您想要的连接

<add name="DefaultConnection" connectionString="uid=****;pwd=*****;server=(local);database=****" providerName="System.Data.SqlClient" />

验证过滤器\InitializeSimpleMembershipAttribute.cs

第 41 行应为:

WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);

请注意,autoCreateTables 设置为 true,并且您在 web.config 中设置的连接名称已设置。

现在,当用户注册时,它将查看您设置的数据库。如果表尚不存在,则会创建它们。

【讨论】:

    【解决方案2】:

    aspnet_regsql.exe 是 ASP.Net 架构的一部分,而不是 MVC。

    我敢打赌,MVC4 开发者预览版在其项目结构中带有一些自定义架构脚本,或者它安装了新的 ASP.Net 4.5 版本aspnet_regsql.exe 的预览版。

    如果后者是真的,您也许可以使用它来创建一个数据库,并将其绑定到您的 MVC3(和之前的)应用程序中。这里的含义是由于架构差异,您可能需要编写自己的提供程序。

    另一种选择是使用您的 MVC4 模板创建数据库,删除项目,然后在使用该数据库的 MVC3 项目中编写一个 DA 层。您需要获取的只是连接字符串。但同样,您必须推出自己的提供程序,因为旧的提供程序不知道新的 6 表架构。

    【讨论】:

    • 感谢 one.beat,但我一直在四处寻找,发现提供程序在 MVC4 中实际上是不同的。无论如何感谢您的帮助
    • 不客气。是的,ASP.Net 4.5 将有新的提供者和新的数据库模式。就个人而言,我更喜欢自己动手,而不是使用他们所有的会员资料。有时就像一块肥腻的牛排。 ;)
    • @LillyPop - 我对你的问题的回答是否足够好?
    • 是的,一拍,以为 id 勾选了它,但刚刚投了赞成票,完成了 :-)
    【解决方案3】:

    您必须为安装功能添加一些参数:http://msdn.microsoft.com/en-us/library/ms229862(v=vs.80).aspx

    您可以在没有任何命令行参数的情况下运行 Aspnet_regsql.exe 来运行将引导您完成安装的向导。

    缺少哪些表,创建了哪些表?

    【讨论】:

    • 虽然这几乎是正确的答案(我只是尝试使用命令行选项只创建相同的六个表),VS2010 MVC4 正在创建结构略有不同的表(例如,没有成员资格/MobilePIN 在 mvc db 架构中)所以我认为他们一定是用另一种方式创建的??
    • 我觉得你应该看看这篇文章:computerscribe.com/blogs/blogPost?id=11
    • 好文章谢谢,我现在明白了很多。我已将文章(Common、Membership & Roles)中提到的 scipts 加载到 SQL Server Management Studio 中,但它们生成的表名为 aspnet_Membership,这是问题所在,因为使用 Internet 应用程序模板时 MVC4 生成的表会生成表名称成员资格,角色(没有 aspnet_ 部分)MVC4 正在做一些不同的事情......
    • 好吧,providers不一样,MVC4引入了新的providers——nuget.org/packages/System.Web.Providers
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 2016-04-21
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    相关资源
    最近更新 更多