0

将 aa 列添加到自动生成的 asp.net(ASPNETDB.MDF,Visual Studio 2008,mvc 框架)“用户角色 - 数据库”是一个坏主意(如果为什么?)?

(例如,我想将 RealName 和 LastName 列添加到数据库中的 aspnet_Users 表中。)

我想添加一列而不是创建一个完整的新表的原因是为了避免双重维护问题和不必要的冗余

4

4 回答 4

1

使用了两种生成方案(来自Pragmatic Programmer):

  • 那些用于生成代码的那些
  • 那些一直用来同步一些代码的

用于同步的结果不应被修改,因为它们可能会在以后再次完成生成时被覆盖。

对于您生成的 asp.net 数据库,您没有理由重新运行生成,因此可以对其进行编辑。

重新运行 db 生成的唯一情况是,如果 microsoft 发布了新版本的 users 数据库并且您想使用新版本(在这种情况下,您可能需要编辑应用程序的某些部分,因此您可以读取这两个字段),或者如果您想使用不同的选项重新生成数据库。如果您对当前的数据库不满意,这两种情况都会发生。

于 2009-01-22T15:45:16.260 回答
0

在我看来,自动生成的数据库应该被应用程序数据库中的普通表替换,或者至少应该有一个官方的解决方案来解决这个问题。

我听说这是一个很好的解决方案:http ://www.asp.net/downloads/sandbox/table-profile-provider-samples/

于 2009-01-22T15:41:11.607 回答
0

你为什么不创建一个带有外键约束的新表?向 aspnetdb 添加一列似乎是个坏主意……如果您需要重新创建数据库,那将是一场噩梦……

于 2009-01-22T15:43:24.440 回答
0

首先,这些表并不是 MVC 所特有的:它们是由默认的 AspNetSqlMembershipProvider 创建的/为默认的AspNetSqlMembershipProvider创建的。(也适用于其他类型的 ASP.NET 应用程序。)

您可能可以安全地添加新列,但成员资格提供者不会“看到”它们。它确实提供了它的配置文件机制来存储额外的信息(这些信息被序列化并存储在 aspnet_Profiles 表中)。

如果您需要存储有关用户的大量附加信息,您还可以查看此示例成员资格提供程序,它将个人资料信息存储在一流的表中,而不是存储在个人资料 blob 中。

于 2009-01-22T15:48:55.800 回答