回答

收藏

实体框架原始SQL查询选择未知列(未知返回类型)

技术问答 技术问答 255 人阅读 | 0 人回复 | 2023-09-12

当我不知道需要返回的类型时,我体数据集无法原始运行sql。9 f: }( V$ T/ `
场景是该页面根据用户选择的选项(生成语句的“ Select”和“ Where动态生成部分)sql,然后试着用以下命令拉出来:* m$ z7 Y' t8 J$ R4 z/ P. B
                                string sSQL = "SELECT "   sSelect   " FROM dbo.Staff ";        if (!string.IsNullOrWhiteSpace(sWhere)) { sSQL  = "WHERE "   sWhere;         DAL.AcdmContext ds = new DAL.AcdmContext();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;var resultSet = ds.Database.SqlQuery(sSQL).ToList();匿名类型似乎不能用于结果集。问题是,因为select语句是即时生成的,所以我不能提前集成或类似于结果-组合太多。
  U, x# p* w& k  q# y( U' E我可以查询每一列或一列! `, @4 @% x! U' K
                                var resultSet = ds.Database.SqlQuery(sSQL).ToList();但是,我找不到一种方法做到这一点与任何其他列号相同-我已经试过了和IEnumerable
, r! h. N% ~7 A" o' E' h我的最后一个想法是提取整个列并过滤到我需要的事实,但这似乎是浪费。有更好的解决方案吗?) p2 H& R1 m  B# k" \8 ]
(哦,在有人说之前,我知道我应该在查询中使用参数-我暂时把它们拿出来,试着让它们正常工作。
5 \- f  v& ]: C谢谢!
' Q+ i8 ^7 `( n0 j7 s' V/ ]3 B3 H                                                               
0 o6 R6 g, q0 Q1 P5 N7 I$ ^1 H  b. i    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则