Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 将数据库从SQL Azure迁移到SQL Server后的数据插入问题_Entity Framework_Sql Server 2008 R2_Azure Sql Database_Database Migration_Identity Column - Fatal编程技术网

Entity framework 将数据库从SQL Azure迁移到SQL Server后的数据插入问题

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字

我在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中运行良好。它是为这种情况而设计的。

问题是向导试图插入主键值,默认情况下,主键值是禁用的。如果不插入主键,关系就无法维持,因此整个问题就无法解决

要解决此问题并进行简单的迁移,请确保新架构维护所有标识列


选择源表和目标表时,对于特定表,请单击“编辑映射”并选中“启用标识插入”复选框,以启用主键值的插入,从而保持结构和关系的完整性。

根据回复,复制数据库是“导入/导出向导”。我还尝试先创建模式,然后导入数据,但复制的数据中的关系没有得到维护。因此,我们投了反对票。