当谈到Universal Windows Platform
如何连接/管理/与本地SQL Server
数据库交互时,我遇到了麻烦。我目前的项目(WPF using .NET Framework 4.8
)是我对移植到UWP
感兴趣的,它使用EntityFramework 6
和ADO.NET
模型,它的工作原理很有魅力。一点问题都没有。另一方面,我只想说,当连接到本地UWP
实例时,我完全不知道发生了什么。我已经看过3到4个不同的指南/模板,但没有一个有效。我真的很想使用UWP,并利用Windows 10 v2004提供的所有新功能,但看起来不会发生这种情况。
正如我目前所理解的那样,我需要在同一解决方案中创建两个单独的项目。一个是UWP主程序,另一个是针对.NET标准2.0平台的.NET核心类库。我还读过EntityFramework 6在.NET Core或UWP上不受支持,所以唯一的方法是使用EntityFrameworkCore (更具体地说,是NuGet包Microsoft.EntityFrameworkCore.SqlServer)。因此,我将其安装在.NET核心类库上,然后从UWP应用程序中设置一个指向类库的引用。由于本地Server已经启动并运行,所以我不执行所谓的“代码优先”方法来创建所有模型/DbContext.cs文件。根据我所读到的,将当前存在的Server导入数据模型的唯一方法是使用Scaffold-DbContext命令,并通过包管理器使用标准连接字符串。令人惊讶的是,这在第一次尝试中起了作用,模型和DbContext都是在没有任何问题的情况下创建的。
这似乎是我所能得到的,因为之后的每件事都会抛出异常。如果我试图传递任何使用C#从数据库中检索数据的DbContext代码,我会得到大约10-15个异常,这些异常本质上说程序无法找到或连接到数据库。我已经用所有可以想象的方式手动编辑了连接字符串,但是似乎没有任何东西工作。我还尝试使用Microsoft.Data.SqlClient.SqlConnection
、Microsoft.Data.SqlClient.SqlConnectionStringBuilder
和System.Data.SqlClient.SqlConnection
手动设置一个新连接,但它们都失败了,只有相同的例外。
很抱歉发布了很长的帖子,但在这一点上,我真的不知道是怎么回事,我真的很感激你们都能提供的任何反馈。
更新1
因此,我回顾了我目前在.NET框架上使用的应用程序,并在App.config
文件中查找连接字符串,以查看常规EntityFramework使用的是什么,这与我以前使用过的任何东西都完全不同。我的猜测是,它生成了一个完全自定义的连接字符串,其中包含对所有类型文件的引用和一个名为“ProviderName”的属性。将尝试切割和粘贴这串到UWP,看看它是否会工作。
更新2
我想在这件事上我错过了一些基本的东西。我可以使用连接字符串生成脚手架,不会出现任何问题,但是如果我试图在运行时使用相同的连接字符串打开连接,则会出现错误。
发布于 2020-11-26 13:39:55
经过几个月的尝试和错误,终于能够在运行时获得一个连接。在不涉及太多细节的情况下,下面是对我有用的内容(假设EFCore已经生成了一个DbContext文件):
Authentication.
这应该管用。如果仍然有错误,我会再次检查参数,以确保它们都被正确地输入。
希望这篇文章能帮助其他处理这个问题的人。
https://stackoverflow.com/questions/62142974
复制相似问题