Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/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
C# 如何解决SQL在代码首次迁移到部署Azure期间找不到数据类型BLOB的问题_C#_Sql_Azure_Asp.net Core - Fatal编程技术网

C# 如何解决SQL在代码首次迁移到部署Azure期间找不到数据类型BLOB的问题

C# 如何解决SQL在代码首次迁移到部署Azure期间找不到数据类型BLOB的问题,c#,sql,azure,asp.net-core,C#,Sql,Azure,Asp.net Core,我想将当前在ASP.NET Core上使用的sqlite数据库与Azure SQL进行交换。我生成了资源SQL server project上定义的所有内容 当我想将应用程序发布到azure部署服务器和云中的sql数据库时,它说找不到数据类型BLOB。我检查了internet上的解决方案,但没有工作。我想我必须更新我的模型,但我不知道用什么方法 首先,我将useSqlLiteServer更改为UseSqlServer 我还应该在下面列出的模型上更改什么?下面列出的一个模型与其他模型类似 name

我想将当前在ASP.NET Core上使用的sqlite数据库与Azure SQL进行交换。我生成了资源SQL server project上定义的所有内容

当我想将应用程序发布到azure部署服务器和云中的sql数据库时,它说找不到数据类型BLOB。我检查了internet上的解决方案,但没有工作。我想我必须更新我的模型,但我不知道用什么方法

首先,我将useSqlLiteServer更改为UseSqlServer

我还应该在下面列出的模型上更改什么?下面列出的一个模型与其他模型类似

namespace HospitalAppointmentAPI.Models
{
    public class Patient
    {   
        public int Id { get; set; }
        public string IdentityNumber { get; set; }
        public string Name { get; set; } 
        public byte[] PasswordHash { get; set; }
        public byte[] PasswordSalt { get; set; }
        public DateTime BirthDate { get; set; }
        public string Email { get; set; }
        public ICollection<Appointment> Appointments { get; set; }

    }
}
DataContext.cs

EF迁移脚本生成期间的完整错误消息

C:\程序 Files\dotnet\sdk\3.0.100\Sdks\Microsoft.NET.sdk.Publish\targets\PublishTargets\Microsoft.NET.sdk.Publish.MSDeploy.targets140,5: 错误:Web部署任务失败。过程中发生错误 数据库脚本的执行。错误发生在 脚本的以下行:23和39。详细日志可能会丢失 有关于错误的更多信息。命令以 以下: 如果不存在,请从[\uu efmigrationshistori]中选择* 列、参数或变量4:找不到数据类型BLOB。有关详细信息,请访问: . 未能发布数据库。如果远程数据库无法运行脚本,则可能会发生这种情况。请尝试修改数据库脚本,或 在包/发布Web属性中禁用数据库发布 如果由于数据库表已存在而导致脚本失败,请重试 在创建新数据库对象之前删除现有数据库对象。有关详细信息,请参阅 有关从Visual Studio执行这些选项的信息,请参见 . 错误详细信息: 执行数据库脚本期间出错。错误发生在脚本的以下行之间:23和 39.详细日志可能包含有关错误的更多信息 命令以以下内容开始: 如果不存在,请从[\uu efmigrationshistori]中选择* 列、参数或变量4:找不到数据类型BLOB。有关详细信息,请访问: . 列、参数或变量4:找不到数据类型BLOB。 位于System.Data.SqlClient.SqlConnection.OneErrorSqlException异常、布尔断开连接、Action1 wrapCloseInAction 位于System.Data.SqlClient.SqlInternalConnection.OnErrorSqlException 异常、布尔断开连接、Action1 wrapCloseInAction 位于System.Data.SqlClient.TdsParser.ThroweException和WarningDsParserStateObject stateObj,布尔调用方连接锁,布尔异步关闭 在System.Data.SqlClient.TdsParser.TryRunRunBehavior runBehavior、SqlCommand cmdHandler、SqlDataReader dataStream、, BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj、Boolean和dataReady 位于System.Data.SqlClient.SqlCommand.RunExecuteOnQueryTDString methodName、布尔异步、Int32超时、布尔异步写入 位于System.Data.SqlClient.SqlCommand.InternalExecutionQueryTaskCompletionSource`1 完成,字符串方法名,布尔sendToPipe,Int32超时, Boolean&usedCache、Boolean异步写入、Boolean索引 在System.Data.SqlClient.SqlCommand.ExecuteOnQuery 位于Microsoft.Web.Deployment.DBStatementInfo.ExecuteBConnection 连接、DbTransaction事务、DeploymentBaseContext baseContext,Int32超时 发布未能部署

在Sqlite中,BLOB类型用于存储字节数组。在SQL Server中,byte[]类型受支持

在您的例子中,您首先使用Sqlite,然后更改为使用SQL Server。因此,您需要删除迁移脚本历史记录

然后为SQl Server数据库创建并应用初始迁移:

dotnet ef migrations add init -o Data\Migrations
dotnet ef database update
然后将在SQL Server数据库中创建表。应用程序将准备好运行。

在Sqlite中,类型BLOB用于存储字节数组。在SQL Server中,类型byte[]受支持

在您的例子中,您首先使用Sqlite,然后更改为使用SQL Server。因此,您需要删除迁移脚本历史记录

然后为SQl Server数据库创建并应用初始迁移:

dotnet ef migrations add init -o Data\Migrations
dotnet ef database update

然后将在SQL Server数据库中创建表。您的应用程序将准备好运行。

根据错误,您在代码中使用的数据类型可能无法转换为SQL Server数据类型。有关SQL Server数据类型的更多详细信息,请参阅?此外,您能否提供脚本?我是否可以知道您已尝试为SQl Server数据库创建并应用初始迁移?在更新我的SQl Server数据库后,我可以成功地从Sqlite切换到SQl Server。根据错误,您在代码中使用的数据类型可能无法转换为SQl Server数据类型。有关SQl Server数据类型的详细信息,请参阅r to?另外,你能提供你的剧本吗?我可以知道你是否试过吗 为SQl Server数据库创建并应用初始迁移?更新SQL Server数据库后,我可以成功地从Sqlite切换到SQL Server。
dotnet ef migrations add init -o Data\Migrations
dotnet ef database update