-7

有人可以用英文分解这个c#吗?是否可以以某种方式在其中添加连接?

return db.Providers.Where(n => n.LastName.StartsWith(prefixText)).OrderBy(
       n=>n.LastName).Select(n => n.LastName).Take(count).ToArray();

谢谢。

4

4 回答 4

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

意思是:

给我列以PrefixTextProviders开头的表中的所有行(无论该变量包含什么)。我希望它们按列按字母顺序排序,并且我只想要第一个计数行(即,如果等于 50,则最多可以得到 50 行)LastNameLastNamecount

当然,你可以做一个JOIN. 您可以在Where表达式中引用另一个表:

db.Providers.Where(n => n.ProviderGroup.ADgroup == 'Active Dir Group')

如果您的模型提供表之间的必要关系,该框架将自动为您加入。 ADgroup

于 2013-07-24T21:52:05.070 回答
0

获取 LastName 以变量 prefixText 中的文本开头的所有 Provider 的 x 个姓氏,按字母升序排列。

于 2013-07-24T21:50:42.973 回答
0

count这将返回一个包含姓氏的数组,按字母递增顺序排列,并以prefixText.

于 2013-07-24T21:53:51.817 回答
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();

于 2013-07-24T21:56:39.100 回答