gpt4 book ai didi

visual-studio-2010 - Visual Studio 数据库项目和 aspnet_regsql.exe

转载 作者:行者123 更新时间:2023-12-02 02:28:35 26 4
gpt4 key购买 nike

我正在使用 visual studio 数据库项目对网站的数据库进行更改控制。我想使用由 aspnet_regsql 工具创建的成员资格/角色模型来管理对网站的访问。

到目前为止,我在部署数据库之前运行 aspnet_regsql,以便数据库项目将网站特定表合并到数据库中。我一直在研究一种将 aspnet_ 表包含在数据库项目中的方法,但不知道该怎么做。

有人试过吗?有充分的理由不这样做吗?

最佳答案

是的,我做到了。在研究它时,我看到了很多他们不推荐它的地方,Pro ASP.Net 4.0一个。我认为,这意味着脚本的实现可能因一个框架版本而异。这可能是个好建议……也可能过于热心了。

当我使用 RedGate Compare 完成后,我比较了结构和数据,但我没有发现任何与结果不同的地方……所以我认为它工作正常……YMMV。

为此我所做的是创建一个新数据库并在其上运行 aspnet_regsql。然后我在 VS2010 中创建了一个新的数据库项目并将该数据库导入。然后我复制了我的新项目 Schema Objects 目录中的所有文件并将它们放到我现有的数据库项目 Schema Objects 目录中。我打开了我的旧项目,从项目菜单中显示了所有文件,然后将所有新文件包含在我的项目中。

您还需要从新项目的 Database.sqlpermissions 文件中复制所有数据库权限。

最后,您需要将其添加到您的部署后脚本中。

-- Add 6 rows to [dbo].[aspnet_SchemaVersions]
IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'common') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'common', N'1', 1)
END

IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'health monitoring') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'health monitoring', N'1', 1)
END

IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'membership') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'membership', N'1', 1)
END

IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'personalization') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'personalization', N'1', 1)
END

IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'profile') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'profile', N'1', 1)
END

IF NOT EXISTS (SELECT * FROM [dbo].[aspnet_SchemaVersions] WHERE [Feature] = (N'role manager') AND [CompatibleSchemaVersion] = N'1')
BEGIN
INSERT INTO [dbo].[aspnet_SchemaVersions] ([Feature], [CompatibleSchemaVersion], [IsCurrentVersion]) VALUES (N'role manager', N'1', 1)
END

关于visual-studio-2010 - Visual Studio 数据库项目和 aspnet_regsql.exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4761904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com