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;
我在做什么错?
答
如果查询在LINQPad中工作,则您的查询是正确的,您的环境中存在问题。您需要比较您的环境和LINQPad之间的部分,以查看断开连接的发生位置。
例如,什么是_dataContext.Connections.Count()
在这两个地方? _dataContext.Companies.Count()
也是如此。比较不同部分的查询,直到找到差异的来源。
+0
这对我有帮助,我想我有一个数据库名称的字符。一个字符 – Maddy
你确定它是空的吗?它可能还没有被查询过。大多数LINQ查询使用'yield'关键字。 –
你确定连接字符串在配置文件中的定义有些相同吗?比如,你是否连接到同一个数据库?你打开了连接吗? –
@JeroenvanLangen,我从实体框架使用代码第一方法。我在配置文件中有连接字符串。如果我手动通过它,它也可以。但我只是无法从数据库中检索它。 – Maddy