Entity framework 将数据库从SQL Azure迁移到SQL Server后的数据插入问题
我在SQL Azure上有一个数据库,它有一个主标识。 使用SQL Server导入和导出向导后,我将数据传输到我的SQL Server 2008 R2数据库 我的ASP.NET应用程序运行良好,可以读取数据。但当我尝试在“User”表中插入值时,它会给我一个错误: 无法在列“UserId”中插入null 原因是它无法生成标识值 我如何克服这个问题 PS:我尝试从SQLAzure生成脚本,但SQL文件大小为500MB,我的主机不允许运行这么大的脚本 编辑:使用实体框架进行数据访问。UserId字段具有Entity framework 将数据库从SQL Azure迁移到SQL Server后的数据插入问题,entity-framework,sql-server-2008-r2,azure-sql-database,database-migration,identity-column,Entity Framework,Sql Server 2008 R2,Azure Sql Database,Database Migration,Identity Column,我在SQL Azure上有一个数据库,它有一个主标识。 使用SQL Server导入和导出向导后,我将数据传输到我的SQL Server 2008 R2数据库 我的ASP.NET应用程序运行良好,可以读取数据。但当我尝试在“User”表中插入值时,它会给我一个错误: 无法在列“UserId”中插入null 原因是它无法生成标识值 我如何克服这个问题 PS:我尝试从SQLAzure生成脚本,但SQL文件大小为500MB,我的主机不允许运行这么大的脚本 编辑:使用实体框架进行数据访问。UserId字
标识属性
(1,1)
Edit尝试从SQLAzure迁移工具创建架构,然后使用导入/导出数据复制数据。
但是向导不会维护行之间的关系。数据导入/导出向导不会保留数据库对象的整个结构 i、 e.它只复制数据,而不复制数据所在的表的整个结构-包括标识和键定义 您可以导入数据,然后手动设置所有主键和默认字段以匹配所需的数据库定义,也可以连接到Azure实例并在复制之前使用“生成脚本”选项在2008数据库中生成架构
但真正的答案是,您应该使用来实现这一点,这在Azure中运行良好。它是为这种情况而设计的。问题是向导试图插入主键值,默认情况下,主键值是禁用的。如果不插入主键,关系就无法维持,因此整个问题就无法解决 要解决此问题并进行简单的迁移,请确保新架构维护所有标识列
选择源表和目标表时,对于特定表,请单击“编辑映射”并选中“启用标识插入”复选框,以启用主键值的插入,从而保持结构和关系的完整性。根据回复,复制数据库是“导入/导出向导”。我还尝试先创建模式,然后导入数据,但复制的数据中的关系没有得到维护。因此,我们投了反对票。