LINQ查询在执行时返回NULL

LINQ查询在执行时返回NULL

问题描述:

我在我的数据库中有2个表,并且正在编写一个查询以从特定列中获取数据。但是,LINQ查询返回一个空的结果集。我已经阅读了SO和在线的多篇文章,并尝试过FirstOrDefault,First,Single,SingleOrDefault。我试图用Any检查,但数据集仍然是空的。我在LINQPad上运行了相同的查询,它确实给我返回了正确的结果。LINQ查询在执行时返回NULL

var connString = from firstTable in _dataContext.Connections 
    join secondTable in _dataContext.Companies on 
    firstTable.CompanyID equals secondTable .CompanyID 
    where secondTable .CompanyName == "Name" 
    select firstTable .ConnectionString; 

我在做什么错?

+0

你确定它是空的吗?它可能还没有被查询过。大多数LINQ查询使用'yield'关键字。 –

+1

你确定连接字符串在配置文件中的定义有些相同吗?比如,你是否连接到同一个数据库?你打开了连接吗? –

+0

@JeroenvanLangen,我从实体框架使用代码第一方法。我在配置文件中有连接字符串。如果我手动通过它,它也可以。但我只是无法从数据库中检索它。 – Maddy

如果查询在LINQPad中工作,则您的查询是正确的,您的环境中存在问题。您需要比较您的环境和LINQPad之间的部分,以查看断开连接的发生位置。

例如,什么是_dataContext.Connections.Count()在这两个地方? _dataContext.Companies.Count()也是如此。比较不同部分的查询,直到找到差异的来源。

+0

这对我有帮助,我想我有一个数据库名称的字符。一个字符 – Maddy