【问题标题】:Connecting to Db after upgrading to .net升级到 .net 后连接到 Db
【发布时间】:2021-11-25 18:01:11
【问题描述】:

我编写了一个使用 LocalDb 的 WPF 程序。该程序与|DataDirectory|完美配合。

        var sqlConnectionStringBuilder = new SqlConnectionStringBuilder
        {
            DataSource = @"(LocalDB)\MSSQLLocalDB",
            AttachDBFilename = $"|DataDirectory|\\Lc Db {userName}.mdf",
            IntegratedSecurity = true
        };

我从 .net46 升级到 .net5,但我仍然使用 EF 而不是 EF.Core。现在我在第一次到达数据库时遇到了这个异常:Invalid value for key 'attachdbfilename'。如果我使用绝对路径,那么我可以到达 Db。

        var sqlConnectionStringBuilder = new SqlConnectionStringBuilder
        {
            DataSource = @"(LocalDB)\MSSQLLocalDB",
            AttachDBFilename = $"AttachDBFilename = @"c:\Users\xyz\Documents\LedgerCommander\LedgerCommander\bin\Debug\net5.0-windows\Lc Db Heckl.mdf"",
            IntegratedSecurity = true
        };

我应该如何在.net core 中使用|DataDirectory|?我尝试了多种方法都没有成功。 1、2、3、4

【问题讨论】:

  • 也许您可以尝试使用 Microsoft.Data.SqlClient 的 ErikEJ.EntityFramework.SqlServer ?
  • 感谢@ErikEJ 我安装了nuget,更改了使用,将属性添加到dbContext。现在出现错误“'EntityFramework.SqlServer 和'ErikEJ.EntityFramework.SqlServer 中都存在'SqlFunctions' 类型”。我以为我应该删除 nuget EntityFramework.SqlServer 但实际上没有这样的 nuget 只有 EntityFramework。有什么想法吗?
  • 有意思,能分享一下你是如何在 Github 上使用 SqlFunctions 的吗?
  • 亲爱的@ErikEJ 这是link。我创建了一个替换 Db 视图的方法。据我了解,此编译错误意味着 SqlFunctions 现在位于两个程序集中。我尝试使用解决方案资源管理器删除旧程序集。
  • 很可能是一个错误,将进行调查

标签: entity-framework connection-string .net-5 localdb


【解决方案1】:

PureManApplicationDevelopment 可以确定 DataDirectory。在构造函数中将_DataDir = string.Empty;更改为_DataDir = _CurrentPath;,然后就可以创建连接字符串了。

            var dataDirectory = PureManApplicationDeployment.DataDirectory;
            var sqlConnectionStringBuilder = new SqlConnectionStringBuilder
            {
                DataSource = @"(LocalDB)\MSSQLLocalDB",
                //AttachDBFilename = $"|DataDirectory|\\Lc Db {userName}.mdf",
                AttachDBFilename = $"{dataDirectory}Lc Db {userName}.mdf",
                IntegratedSecurity = true
            };

【讨论】:

    猜你喜欢
    • 2017-07-28
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    相关资源
    最近更新 更多