首页 > 其他分享 >使用EF8在Core8中出现的奇葩bug

使用EF8在Core8中出现的奇葩bug

时间:2023-11-23 16:22:36浏览次数:36  
标签:EF8 Microsoft EntityFrameworkCore Core8 Boolean nvarchar NULL Data bug

1.add-migration addtable  一切正常 

 2.在update-database -verbose 出现奇葩bug 

System.Globalization.CultureNotFoundException: Only the invariant culture is supported in globalization-invariant mode. See https://aka.ms/GlobalizationInvariantMode for more information. (Parameter 'name')
en-us is an invalid culture identifier.
   at System.Globalization.CultureInfo.GetCultureInfo(String name)
   at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry, SqlConnectionOverrides overrides)
   at Microsoft.Data.SqlClient.SqlConnection.Open(SqlConnectionOverrides overrides)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerConnection.OpenDbConnection(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternal(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.<>c__DisplayClass18_0.<Exists>b__0(DateTime giveUp)
   at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.<>c__DisplayClass12_0`2.<Execute>b__0(DbContext _, TState s)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)
   at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func`2 operation, Func`2 verifySucceeded)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists(Boolean retryOnNotExists)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists()
   at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Only the invariant culture is supported in globalization-invariant mode. See https://aka.ms/GlobalizationInvariantMode for more information. (Parameter 'name')
en-us is an invalid culture identifier.

  然后访问了给出的链接:https://aka.ms/GlobalizationInvariantMode 

 发现有 这么个文件:runtimeconfig.json  

 那么这个玩应在什么地方呢? 向上翻了翻菜单:

发现 

 

感觉就快找到了! 

去bin文件里翻一翻:果然 

 

打开进行修改:

 再次运行 :Update-Database

还是报错。。。。

Microsoft.Data.SqlClient.SqlException (0x80131904): A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。)
 ---> System.ComponentModel.Win32Exception (0x80090325): 证书链是由不受信任的颁发机构颁发的。
   at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at Microsoft.Data.SqlClient.TdsParserStateObject.ThrowExceptionAndWarning(Boolean callerHasConnectionLock, Boolean asyncClose)
   at Microsoft.Data.SqlClient.TdsParserStateObject.SNIWritePacket(PacketHandle packet, UInt32& sniError, Boolean canAccumulate, Boolean callerHasConnectionLock, Boolean asyncClose)
   at Microsoft.Data.SqlClient.TdsParserStateObject.WriteSni(Boolean canAccumulate)
   at Microsoft.Data.SqlClient.TdsParserStateObject.WritePacket(Byte flushMode, Boolean canAccumulate)
   at Microsoft.Data.SqlClient.TdsParser.TdsLogin(SqlLogin rec, FeatureExtension requestedFeatures, SessionData recoverySessionData, FederatedAuthenticationFeatureExtensionData fedAuthFeatureExtensionData, SqlConnectionEncryptOption encrypt)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.Login(ServerInfo server, TimeoutTimer timeout, String newPassword, SecureString newSecurePassword, SqlConnectionEncryptOption encrypt)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken, DbConnectionPool pool)
   at Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   at Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
   at Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry, SqlConnectionOverrides overrides)
   at Microsoft.Data.SqlClient.SqlConnection.Open(SqlConnectionOverrides overrides)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerConnection.OpenDbConnection(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternal(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.<>c__DisplayClass18_0.<Exists>b__0(DateTime giveUp)
   at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.<>c__DisplayClass12_0`2.<Execute>b__0(DbContext _, TState s)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)
   at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func`2 operation, Func`2 verifySucceeded)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists(Boolean retryOnNotExists)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists()
   at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
ClientConnectionId:8bdb868a-74bb-48d2-a35f-795f5b095854
Error Number:-2146893019,State:0,Class:20
A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。)

  但是这个错误就比较常规了。在数据链接的地方增加 Encrypt=True;TrustServerCertificate=True; 即可

"ConnectionStrings": {
    "DbConnectionString": "Data Source = .;Initial Catalog =daboluoDB;User Id = sa;Password = 123456;Encrypt=True;TrustServerCertificate=True;"
  }

   再次运行 :Update-Database

 

PM> Update-Database
Build started...
Build succeeded.
Security Warning: The negotiated TLS 1.0 is an insecure protocol and is supported for backward compatibility only. The recommended protocol version is TLS 1.2 and later.
Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (41ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      SELECT 1
Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (40ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      SELECT OBJECT_ID(N'[__EFMigrationsHistory]');
Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (26ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      SELECT 1
Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (34ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      CREATE TABLE [__EFMigrationsHistory] (
          [MigrationId] nvarchar(150) NOT NULL,
          [ProductVersion] nvarchar(32) NOT NULL,
          CONSTRAINT [PK___EFMigrationsHistory] PRIMARY KEY ([MigrationId])
      );
Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (26ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      SELECT 1
Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (27ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      SELECT OBJECT_ID(N'[__EFMigrationsHistory]');
Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (39ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      SELECT [MigrationId], [ProductVersion]
      FROM [__EFMigrationsHistory]
      ORDER BY [MigrationId];
Microsoft.EntityFrameworkCore.Migrations[20402]
      Applying migration '20231123075005_addtable'.
Applying migration '20231123075005_addtable'.
Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (40ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      CREATE TABLE [MenuEntity] (
          [Id] uniqueidentifier NOT NULL,
          [ParentId] uniqueidentifier NOT NULL,
          [MenuText] nvarchar(max) NULL,
          [MenuType] int NOT NULL,
          [Icon] nvarchar(max) NULL,
          [WebUrlName] nvarchar(max) NULL,
          [WebUrl] nvarchar(max) NULL,
          [VueFilePath] nvarchar(max) NULL,
          [IsLeafNode] bit NOT NULL,
          [OrderBy] int NOT NULL,
          [CreateTime] datetime2 NOT NULL,
          [ModifyTime] datetime2 NULL,
          [Status] int NOT NULL,
          CONSTRAINT [PK_MenuEntity] PRIMARY KEY ([Id])
      );
Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (27ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      CREATE TABLE [RoleEntity] (
          [RoleId] int NOT NULL IDENTITY,
          [RoleName] nvarchar(max) NULL,
          [Status] int NOT NULL,
          [CreateTime] datetime2 NOT NULL,
          [ModifyTime] datetime2 NULL,
          CONSTRAINT [PK_RoleEntity] PRIMARY KEY ([RoleId])
      );
Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (27ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      CREATE TABLE [RoleMenuMapEntity] (
          [Id] int NOT NULL IDENTITY,
          [RoleId] int NOT NULL,
          [MenuId] uniqueidentifier NOT NULL,
          [CreateTime] datetime2 NOT NULL,
          [ModifyTime] datetime2 NULL,
          [Status] int NOT NULL,
          CONSTRAINT [PK_RoleMenuMapEntity] PRIMARY KEY ([Id])
      );
Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (27ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      CREATE TABLE [SystemLog] (
          [Id] int NOT NULL IDENTITY,
          [Date] datetime2 NULL,
          [Thread] nvarchar(max) NULL,
          [Level] nvarchar(max) NULL,
          [Logger] nvarchar(max) NULL,
          [Message] nvarchar(max) NULL,
          [Exception] nvarchar(max) NULL,
          CONSTRAINT [PK_SystemLog] PRIMARY KEY ([Id])
      );
Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (28ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      CREATE TABLE [UserEntity] (
          [UserId] int NOT NULL IDENTITY,
          [Name] nvarchar(max) NULL,
          [Password] nvarchar(max) NULL,
          [UserType] int NOT NULL,
          [Phone] nvarchar(max) NULL,
          [Mobile] nvarchar(max) NULL,
          [Address] nvarchar(max) NULL,
          [Email] nvarchar(max) NULL,
          [QQ] nvarchar(max) NULL,
          [WeChat] nvarchar(max) NULL,
          [Sex] int NOT NULL,
          [Imageurl] nvarchar(max) NULL,
          [LastLoginTime] datetime2 NOT NULL,
          [CreateTime] datetime2 NOT NULL,
          [ModifyTime] datetime2 NULL,
          [Status] int NOT NULL,
          CONSTRAINT [PK_UserEntity] PRIMARY KEY ([UserId])
      );
Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (27ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      CREATE TABLE [UserRoleMapEntity] (
          [Id] int NOT NULL IDENTITY,
          [UserId] int NOT NULL,
          [RoleId] int NOT NULL,
          [CreateTime] datetime2 NOT NULL,
          [ModifyTime] datetime2 NULL,
          [Status] int NOT NULL,
          CONSTRAINT [PK_UserRoleMapEntity] PRIMARY KEY ([Id])
      );
Microsoft.EntityFrameworkCore.Database.Command[20101]
      Executed DbCommand (32ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
      VALUES (N'20231123075005_addtable', N'8.0.0');
Done.

  这个问题确实第一次遇到,搞得迷迷糊糊,虽然解决了,但是那个配置到底是干啥得,有空在研究研究.....

 

标签:EF8,Microsoft,EntityFrameworkCore,Core8,Boolean,nvarchar,NULL,Data,bug
From: https://www.cnblogs.com/daboluo/p/17851845.html

相关文章

  • nanomq clion 远程debug尝试
    很简单因为nanomq是基于cmake开发的对于clion来说基于debug就比较方便了,同时因为nanomq相关依赖都是通过模块的,还是比较方便的,以下是一个简单的debug测试环境准备基于clion的remotesshclone代码 gitclonehttps://github.com/emqx/nanomq.gitcdna......
  • Flask-debug模式
    不开debug模式的问题修改源代码需要重启程序才会生效程序出错没有错误的详细信息,不利于排查分析开启debug模式 终端执行:pythonapp.py  ......
  • pycharm中debug布局
    由于一直忘记,这里做个笔记吧。为了方便调试代码,如下布局比较方便实用。左侧为调试区,右侧是变量区。成为上面这种格式需要三步:1右键选择layout->restoredefaultlayout得到如下2把从consolt鼠标拖到左下角得到如下3右击frame->layout->去掉frame对号选择......
  • Xdebug延长调试时间
    因为我在phpstorm用xdebug调试时,没过多久就断掉然后出现500服务器错误的现象解决办法1.打开apache的配置文件,在apache\conf\httpd.conf里修改找到这一行并且把前面的注释去掉Includeconf/extra/httpd-default.conf添加这一行Includeconf/extra/httpd-fcgid.conf 2.在apac......
  • bug未解之谜
    import{defineStore}from'pinia'import{ref}from'vue'exportconstempStore=defineStore( 'big-stustore', ()=>{  //声明数据state-count  constempId=ref(100)  //声明操作数据的方法action(普通函数)  //cons......
  • 软件测试/人工智能|如何利用人工智能来帮助我们找bug
    简介在软件开发中,Bug是难免的。然而,GitHubCopilot(GitHub提供的人工智能编程助手)已经成为了开发者的强力工具。它不仅能够加速开发,还能帮助找出代码中的Bug。本文我们就来看看它如何帮助我们轻松解决Bug。示例问题描述:假设我们有一个Python函数,用于计算两个数的乘积。......
  • FreqScan-Debug及日常更新迭代
    %*************************************咸鱼:毛毛毛毛(tb8392689278)%*************************************#2023.11.20CSDN.Renew.V1修改原有文档中运行步骤(见下)各版本、场景通用*#运行步骤*1.将全部程序文件放置于同一文件夹2.打开SVG_10kw…….slx文件3.打开FreqScan......
  • bug分析总结测试点
    通用测试点: BUG总结易出错点: ......
  • uniapp使用uni-grid时出现BUG第二次进入少一列
    在使用uniapp的uni-grid组件时,出现了一个bug,第一次进入页面是是显示正常的,第二次进入就会发送少一列的情况第一次进入时显示第二次进入时显示在网上找了半天没啥解决办法,最后是在dcloud社区中找到解决方法:1.把最外层的view固定宽度2.去掉边框因为我这边是需要进行对不同设......
  • Misc_Bugku_WriteUp | 这是一张单纯的图片
    题目(一张jpg格式的图片分析查看属性,没有信息。用010Editor打开,确认文件头为jpg文件头。查看内容,在文件末尾发现一串有规律的字符&#107;&#101;&#121;&#123;&#121;&#111;&#117;&#32;&#97;&#114;&#101;&#32;&#114;&#105;&#103;&#104;&#116;&am......