【问题标题】:Scaffolding Identity framework mvc core脚手架身份框架 mvc 核心
【发布时间】:2017-08-21 13:53:39
【问题描述】:

我无法在虚拟机上重新创建我的 C# 项目。

基本上,我已经复制了我的项目,并在我的虚拟机上打开了它。脚手架,所以在我在 SQL 中手动创建一些表之后,我让 SQL 数据库与虚拟机上的项目对话。

问题:如何将身份框架 sql 数据表放入我的虚拟机 SQL 表部分? 我希望左侧以黄色突出显示的表格(我的原始机器 sql)也出现在我的虚拟机 sql 上,即图片的右侧。

我怎样才能自动得到这个?身份框架的 Nuget 已下载,但我猜有某种脚手架或类似的东西?

Picture of what I mean

【问题讨论】:

    标签: sql model-view-controller asp.net-core asp.net-identity scaffolding


    【解决方案1】:

    如果我理解正确,您想为 Identity 创建表。你有两个选择:

    1. 使用this post中描述的迁移

    2. 或者只是使用 EF Core 或 SQL Management Studio 为 Identity 表生成 SQL 脚本,因为根据你的屏幕你有 SQL Management Studio,你可以使用它来为特定表生成脚本,使用Task->Generate Scripts... 同时右键单击您的数据库。

    然后只需选择您需要的表格,然后选择Save to new query window

    1. 如果数据库不是很大,你也可以使用Task->Back up...将它保存在你的机器上。然后将此备份复制到虚拟机并使用Restore Database 将其还原到那里。你甚至可以只为这个like described here 使用 SQL。

    【讨论】:

    • 不错!我选择了选项 2。真的很好的帮助,有图片和一切。这似乎成功了。在我将您的答案标记为完美和完整之前的最后一个问题。我在我的旧 sql 上进行了查询,复制了查询并在我的虚拟机上的新 sql 中的数据库上运行它。 3个我不明白的警告(尝试用谷歌搜索),请看下面,这是否重要,因为身份框架表基本上是空的,角色只有三行,每列中的字符数量永远不会超过20:
    • 警告!最大密钥长度为 900 字节。索引“PK_AspNetUserLogins”的最大长度为 1800 字节。对于较大值的某些组合,插入/更新操作将失败。警告!最大密钥长度为 900 字节。索引“PK_AspNetUserRoles”的最大长度为 1800 字节。对于较大值的某些组合,插入/更新操作将失败。警告!最大密钥长度为 900 字节。索引“PK_AspNetUserTokens”的最大长度为 2700 字节。对于某些较大值的组合,插入/更新操作将失败。
    • 当我从新创建的表之一中选择前 1000 个时,它还显示“无效的对象名称”和“无效的列名”: SELECT TOP (1000) [UserId] ,[Username] ,[Password ] ,[Email] ,[CreatedDate] ,[LastLoginDate] ,[FullAccess] FROM [MVCRepetition].[dbo].[LoginData]
    • @Johan 1) 大约 900 字节,这似乎不是问题,因为 900 字节是 450-1=449 个字符,我认为您不会使用这么大的 ID。
    • @Johan 2) 奇怪,试着像这里*.com/questions/1362531/…那样清除缓存