有人可以用英语打破这个c#吗?是否有可能以某种方式在那里添加联接?
return db.Providers.Where(n => n.LastName.StartsWith(prefixText)).OrderBy(
n=>n.LastName).Select(n => n.LastName).Take(count).ToArray();
感谢。
答案 0 :(得分:1)
SQL查询可能类似于:
SELECT LastName FROM Providers
WHERE LastName LIKE 'PrefixText%'
ORDER BY LastName
LIMIT count; -- This may be TOP in MS SQL or ROWNUM in Oracle
这意味着:
向我提供表Providers
中LastName
列以 PrefixText 开头的所有行(无论该变量包含什么)。我希望它们按LastName
列的字母顺序排序,我只想要第一个计数行(即如果count
等于50,那么你最多可以达到50行行)
当然,你可以做JOIN
。您可以在Where
表达式中引用另一个表:
db.Providers.Where(n => n.ProviderGroup.ADgroup == 'Active Dir Group')
如果您的模型提供表格之间的必要关系,框架将自动加入 ADgroup
。
答案 1 :(得分:0)
以字母顺序升序获取姓氏以变量前缀Text中的文本开头的所有提供者的姓氏号码。
答案 2 :(得分:0)
这将返回一个包含count
姓氏的数组,按字母顺序递增排序,并以prefixText
开头。
答案 3 :(得分:0)
这是相应的SQL代码:
select top @count LastName from Providers
where LastName like '+@prefixText+%'
order by LastName
为什么在这里需要join
?
<强>更新强>
根据OP评论:
我需要
join
来限制Ajax自动扩展程序的结果......
您不需要连接来限制Ajax Auto Extender中的结果,只需使用SQL的top
子句或LINQ的Take
方法,就像您现在正在做的那样:
db.Providers.Where(n => n.LastName.StartsWith(prefixText)).OrderBy(
n=>n.LastName).Select(n => n.LastName).Take(count).ToArray();