实体框架:数据库优先>>更改列名

问题描述 投票:0回答:0

我最近将我的应用程序从“.NET Core2.2”迁移到“.NET 6”,并将 C# 语言从 C#8 升级到 C#10。

应用程序使用SQL Server,它是基于数据库的优先。

迁移后,我注意到 2 个变化:

  1. 实体框架核心正在更改列的名称,即如果数据库中的列名称为“Topic_Id”,它将在实体中将其更改为“TopicId”(从名称中删除_):

在 SQL 服务器中:

实体框架:

有没有办法让我在 SQL Server 和 EF 中都拥有准确的列名?

  1. 当我之前写查询时,我没有将它转换为 IEnumerable,但现在对于每个查询,我都必须将它转换为 IEnumerable。这意味着我必须重写所有查询。有没有办法避免重写所有查询?

在 .NET Core 中:

    db.TblUserCredential UserCredential = this.DbContext.TblUserCredential.Where(x => x.CredentialTypeNavigation.Code.ToLower().Contains("kingsid")).FirstOrDefault(x=> x.Identifier.Equals(identifier, StringComparison.OrdinalIgnoreCase));
                      

在 .NET 6 中:

   db.TblUserCredential? UserCredential = ((IEnumerable<db.TblUserCredential>)this.DbContext.TblUserCredentials.Include(x => x.CredentialTypeNavigation))
                           .Where(x => x.CredentialTypeNavigation.Code != null && x.CredentialTypeNavigation.Code.ToLower().Contains("kingsid"))
                           .FirstOrDefault(x => x.Identifier != null && x.Identifier.Equals(identifier, StringComparison.OrdinalIgnoreCase));         

任何帮助将不胜感激

sql-server asp.net-mvc entity-framework .net-6.0 asp.net-core-2.0
© www.soinside.com 2019 - 2024. All rights reserved.