【发布时间】:2017-07-08 10:04:37
【问题描述】:
我想显示以特定字符结尾的 SQL 数据库中的名称,但它不允许我在 Controller ActionResult 中使用 WildCard。
这是我当前想要工作的代码。
public ActionResult GetClients()
{
MyDBEntities myDBEntites = new MyDBEntities();
var clients = from c in myDBEntites.Client
where c.name LIKE '%r'
select c;
return View(clients);
}
我在这里缺少什么让它工作?如果它不适用于通配符,那么我如何获得以特定字符结尾的名称?
【问题讨论】:
-
不能在 LINQ AFAIK 中执行
LIKE。做WHERE c.name.EndsWith("r") -
@apokryfos 谢谢!我想知道为什么通配符不起作用,我的意思是它就像一个完整的 SQL 代码,除了通配符。很奇怪。
-
LINQ 与 SQL 相似但不同。这只是不同的查询语言。编译器会在执行查询时尽可能地将 LINQ 转换为 SQL,因此如果
.EndsWith在 SQL 中实际转换为LIKE,我不会感到惊讶。 -
@apokryfos 啊,好的,我现在明白了。非常感谢你
标签: c# .net sql-server asp.net-mvc linq