我正在 ASP.NET MVC 3 中创建一个 Web 应用程序。我想使用 SQL Server DB(开发中的 SQL Server Express)来存放成员资格、角色和其他相关信息。到目前为止,我一直依赖于自动生成的aspnetdb.mdf
数据库,并且能够毫无问题地创建新用户、登录和注销。但是,我有另一个数据库,其中包含表示应用程序使用的类的表(使用 Entity Framework 4,这些类是基于数据库自动创建的)。
所以,我有两个数据库,但只想拥有一个,因为我不认为我的网站有大量用户,而且我真的不认为需要两个数据库。就我而言,aspnetdb.mdf
数据库还没有真正的数据,所以我不需要担心保留这些数据。因此,解决方案可能是结合两个数据库,或者只是不aspnetdb.mdf
首先创建数据库,而是从一开始就使用另一个数据库来容纳用户和成员表等。
我的问题是多部分的:
1)如果我保留了两个数据库,有没有办法从我的另一个数据库中引用数据库aspnet_Users
中的表作为外键?aspnetdb.mdf
我做了一些搜索,似乎这要么不可能,要么很不方便。如果这是可能的,这是一个坏主意吗?
2)我已经广泛阅读了如何将这些组合到一个数据库中,并且我已经看到了很多关于它的文章(包括这里的 SO)。看起来最好的(或至少是好的)方法是使用 aspnet_regsql.exe 工具来配置我的“其他数据库”,然后摆脱aspnetdb.mdf
数据库并更改我的 Web.config 文件中的连接字符串引用我将保留的其他数据库。
当我遇到以下声明时,我正要开始进行更改:
Aspnet_regsql 工具不应与在用户实例模式下运行的本地安装的 SQL Server Express 一起使用(即,连接字符串包含 User Instance=true)。在这里找到。我的 Web.config 文件
user instance=true
到处都是。这是否意味着我不需要运行 aspnet_reqsql 工具?我可以只更改 Web.config 连接字符串并删除aspnetdb.mdf
数据库吗?上线后是否需要将其更改user instance=true
为其他内容?
3) 我已经到了假设我的问题的解决方案涉及 aspnet_regsql 工具以及对 Web.config 文件的一些更改的地步。如果有更简单/更好的解决方案,请告诉我。
澄清一下,我现在正在使用 SQL Express、VS Express 2010 和 ASP.NET MVC 3 进行开发。最终我会将站点移至托管生产环境。因此,我实施的任何解决方案都需要在我上线时继续使用。
就像我说的,我在互联网上做了很多阅读。我已经开始对所有这些东西如何协同工作形成一些想法,但我已经到了这样的地步:我阅读的越多,我的问题就越多,而明确的方向却让我望而却步。谢谢你的帮助。