【问题标题】:Entity Framework returns empty data for a local database that shows data in SQL Server Object Explorer实体框架为在 SQL Server 对象资源管理器中显示数据的本地数据库返回空数据
【发布时间】:2019-10-03 04:19:24
【问题描述】:

我正在为 WPF 应用程序编写集成测试,并且我正在使用放置在集成测试解决方案中的本地数据库,并且该数据库中包含数据。

当我从这个数据库连接到 SQL Server 后读取数据时,它返回有效数据,但是一旦我回到应用程序,添加它的连接字符串并尝试获取数据,代码返回一个空集。我的最后期限很紧,我不知道为什么会这样。

任何帮助将不胜感激。

简单的代码是:

var xsystem = context.Species.ToList();

我的连接字符串是:

<add name="MaxDatabase" 
     connectionString="Data Source=(LocalDb)\ProjectsV13;Initial Catalog=Catalog=MaxLocalEmbeded;Integrated Security=SSPI" 
     providerName="System.Data.SqlClient" />

【问题讨论】:

    标签: c# sql-server wpf localdb


    【解决方案1】:

    只需用下面的代码替换您的连接字符串。 还要从您的连接中删除“catalog=catalog”。

    <add name="MaxDatabase" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=MaxLocalEmbeded;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\MaxLocalEmbeded.mdf" providerName="System.Data.SqlClient" />    
    

    【讨论】:

    • 我试过了,它成功了,但你认为它背后的逻辑是什么?如果我希望连接字符串是通用的,这样如果本地数据库被推送到源代码控制,没有人必须一次又一次地更改连接字符串?
    • 更改您的连接字符串数据源到服务器和服务器值应该是“。”像下面的连接字符串 connectionString="Server=.;Initial Catalog=MaxLocalEmbeded;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\MaxLocalEmbeded.mdf"
    • 是的,我明白,但我正在寻找它背后的逻辑,为什么我们必须在目录中附加一个具有其确切路径的数据库文件?我们不能让它通用吗?
    • 我认为它是完全动态的。
    • 这个|DataDirectory| 将如何被替换呢?如果它是动态的。
    猜你喜欢
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 2015-08-08
    • 1970-01-01
    相关资源
    最近更新 更多