加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 实体框架SQL查询不返回结果

发布时间:2020-12-15 23:42:29 所属栏目:百科 来源:网络整理
导读:我正在使用实体框架数据库第一个模型,我在查询我的数据库时遇到问题. 我正在尝试使用以下代码: var ctx = new dbEntities();var description = ctx.DEPARTMENTs.SqlQuery("SELECT DESCRIPTION FROM DEPARTMENT WHERE DEPARTMENT='FINANCE'");System.Diagnos
我正在使用实体框架数据库第一个模型,我在查询我的数据库时遇到问题.

我正在尝试使用以下代码:

var ctx = new dbEntities();
var description = ctx.DEPARTMENTs.SqlQuery("SELECT DESCRIPTION FROM DEPARTMENT WHERE DEPARTMENT='FINANCE'");
System.Diagnostics.Debug.WriteLine(description);

我可以在调试日志中看到DEPARTMENTs表的结果表,但由于某种原因,SQL查询只是在控制台中返回我而不是执行查询,任何人都知道为什么?

SELECT DESCRIPTION FROM DEPARTMENT WHERE DEPARTMENT='FINANCE'

解决方法

要使查询针对提供程序执行,您必须使用从IEnumerable派生的任何扩展名,即ToList()或First()或FirstOrDefault()

现在你必须考虑一些事情.您的查询可能会返回什么?数据列表还是单个数据?或者即使找到匹配列表,您只想要一个匹配?

从你的查询的语法我假设你应该这样做:

var ctx = new dbEntities();
var dep = ctx.DEPARTMENTs
             .SqlQuery("SELECT * FROM DEPARTMENT WHERE DEPARTMENT='FINANCE'")
             .FirstOrDefault();

if(dep!=null)
{
    var description = department.Description;
}

或者,您也可以这样做(我更喜欢):

var description = ctx.DEPARTMENTs.Where(s=>s.Department.ToUpper() =="FINANCE")
                     .Select(s=>s.Description)
                     .FirstOrDefault();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读