.net 使用EF Core 7连接本地SQL Server时出现问题

gab6jxml  于 2023-03-09  发布在  .NET
关注(0)|答案(1)|浏览(282)

我有一个简单的Web应用程序,它是从Visual Studio版本.NET 5和EF核心5生成的,唯一添加的是WebDbContext和SQL查询,看看数据库连接是否有效。
Web数据库上下文:

namespace WebApplication1.Data
{
    public class WebDbContext : DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            string connectionString = "Data Source = (local); Initial Catalog = SamuraiApp; Integrated Security = True;"; 
                                                                                                                          //Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=MyWorldDB;Integrated Security=True;Connect Timeout=30

            optionsBuilder.UseSqlServer(connectionString)
                .LogTo(Console.WriteLine,
                        new[] {
                            DbLoggerCategory.Database.Command.Name,
                        }
                        , LogLevel.Information
                        )
                .EnableSensitiveDataLogging();
        }
    }
}

获取API:

[HttpGet]
        public IEnumerable<WeatherForecast> Get()
        {

            WebDbContext dbContext = new WebDbContext();
            var res = dbContext.Database.ExecuteSqlInterpolated($"UPDATE battles SET Name = Name");

            Console.WriteLine("Number of rows: " + res);

            var rng = new Random();
            return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = DateTime.Now.AddDays(index),
                TemperatureC = rng.Next(-20, 55),
                Summary = Summaries[rng.Next(Summaries.Length)]
            })
            .ToArray();
        }

这个应用程序工作,它连接到数据库时,你正在使用.net 5和EF核心5,如果你正在使用.net 6和EF核心6它仍然工作,如果你正在使用.net 7和EF核心6它的工作,但如果你使用.net 7和EF核心7它无法连接到数据库。
显示错误:

Microsoft.Data.SqlClient.SqlException: 'A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - No such host is known.)'

当我更改版本时,我没有更改代码中的某些内容。我在此位置有数据库,它可以在旧版本的EF Core上工作,但不能在EF Core 7上工作。EF Core 7中是否更改了连接到服务器的内容,该服务器位于本地计算机上,并且具有本地allias?

nszi6y05

nszi6y051#

根据错误消息,您可以按照我的步骤获得正确的连接字符串。

正确的格式应如下所示:

Server=(localdb)\\mssqllocaldb;Database=aspnet-Core6MVCSignalR-64406da8-b697-43cb-9c46-aaa950b705b1;Trusted_Connection=True;MultipleActiveResultSets=true

步骤
1.在VS2022(或其他版本)中打开SQLServer对象资源管理器

1.查找数据库(SamuraiApp)

1.查找连接字符串。

相关问题