[英]Building a Raw SQL String from Linq Query Results?
我需要从SQL Server表中进行选择,并将结果连接到SQL字符串中,所以最终得到var sqlString = "Select blah from myTable where blah blah order by blah"
。
这是我的LINQ。 我正在尝试按需要的顺序选择列并将它们合并为1个字符串:
var query = (from a in _Context.tbArticleTypeAssets
where a.ArticleType == ArticleType
select new {sqlQuery = a.ColSelection + "" + a.FromTable + "" + a.whereclause + "" + a.orderBY});
string queryResult = query.ToString();
结果是我不想要的Linq输出。 我只想要字符串的值。 有没有办法做到这一点?
linq查询将返回一个集合,您必须使用First()
或FirstOrDefault()
来获取项目:
string queryResult = query.FirstOrDefault().sqlQuery;
更好的是也检查null:
string queryResult = query.FirstOrDefault() != null ? query.FirstOrDefault().sqlQuery : string.Empty;
尝试这个:
var query = _Context.tbArticleTypeAssets
.Where(a=>a.ArticleType == ArticleType)
.Select(a=>a.ColSelection + "" + a.FromTable + "" + a.whereclause + "" + a.orderBY)
.ToList();
或者,如果您的查询始终只返回一条记录,则可以执行以下操作:
var query = _Context.tbArticleTypeAssets
.Where(a=>a.ArticleType == ArticleType)
.Select(a=>a.ColSelection + "" + a.FromTable + "" + a.whereclause + "" + a.orderBY)
.First();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.