我在SQL中有一个程序,我试图变成Linq:
SELECT O.Id, O.Name as Organization
FROM Organizations O
JOIN OrganizationsHierarchy OH ON O.Id=OH.OrganizationsId
where OH.Hierarchy like '%/12/%'
Run Code Online (Sandbox Code Playgroud)
我最关心的是:
where OH.Hierarchy like '%/12/%'
Run Code Online (Sandbox Code Playgroud)
我有一个存储层的列,例如/ 1/3/12,所以我只使用%/ 12 /%来搜索它.
我的问题是,Linq或.NET相当于使用百分号?
我正在做这样的查询:
var matches = from m in db.Customers
where m.Name == key
select m;
Run Code Online (Sandbox Code Playgroud)
但我不需要m.Name完全等于钥匙.我需要m.Name像关键.
我找不到如何重新创建SQL查询:
WHERE m.Name LIKE key
Run Code Online (Sandbox Code Playgroud)
我正在使用SQL Server 2008 R2.
怎么做?
谢谢.
根据这个问题的答案:
我试图在不使用Compare或ToLower的情况下进行不区分大小写的比较:
var user = db.Users.FirstOrDefault(s => String.Equals(s.Username, username, StringComparison.OrdinalIgnoreCase));
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误:
为调用方法'Boolean Equals(System.String,System.String,System.StringComparison)提供的参数数量不正确
我究竟做错了什么?
在Full .net框架中有实体框架LIKE的Q + A:
如何在Linq中使用SQL Like%?
与实体框架中的运营商一样?
例如:
from c in dc.Organization
where SqlMethods.Like(c.Boss, "%Jeremy%")
Run Code Online (Sandbox Code Playgroud)
这在EF Core中不起作用:
名称SqlMethods在当前上下文中不存在.
那么你如何使用Entity Framework CORE做一个像?
我有这个查询:
select '[' + p.Firstname + ']' from Person p
where p.Firstname = 'Johanne'
Run Code Online (Sandbox Code Playgroud)
在表中,我有多个人有这个名字,有些人在值上有一个尾随空格(值的错误插入,它将被更正)。
为什么这个查询会给我带来这个结果(我插入了括号来可视化空格):
[Johanne]
[Johanne ]
[Johanne ]
[Johanne]
Run Code Online (Sandbox Code Playgroud)
这是配置问题吗?真正的查询来自实体框架 6,但这个例子也这样做了。我该如何预防?
谢谢 !
编辑:我可以使用 EF6 和这样的System.Data.Entity.SqlServer.SqlFunctions.DataLength方法使其工作:
ctx.Person.FirstOrDefault(p => p.FirstName == "Johanne" && SqlFunctions.DataLength(p.FirstName) == "Johanne".Length);
Run Code Online (Sandbox Code Playgroud) 我非常需要帮助,我已经尝试这样做有一段时间了。
所以我有这个查询:
Select name from BlaBlaBla
order by
case when name like '9%' then 1 end,
case when name like '8%' then 1 end,
case when name like '7%' then 1 end,
case when name like '6%' then 1 end,
case when name like '5%' then 1 end,
case when name like '4%' then 1 end,
case when name like '3%' then 1 end,
case when name like '2%' then 1 end,
case when name like '1%' then 1 end, …Run Code Online (Sandbox Code Playgroud) 我正在使用Visual Studio 2010 RC for .NET 4.0,我试图找出如何与Entity Framework进行通配符比较.
我想对EF进行以下查询,我找到所有以'J'开头的名字
select * from Users where FirstName like 'J%'
Run Code Online (Sandbox Code Playgroud) 要将SQL LIKE查询转换为在字符串的开头和结尾都有"%"(百分比)运算符的LINQ,我们使用该Contains()方法.
例如
SELECT * FROM [User] WHERE Username LIKE '%test%'
Run Code Online (Sandbox Code Playgroud)
等价的LINQ是:
var users = (from usr in Context.Users
where usr.Username.Contains("test")
select usr).ToList();
Run Code Online (Sandbox Code Playgroud)
什么将等同于下面的查询,其中包含输入文本中的多个"%"(百分比)运算符?
SELECT * FROM [User] WHERE Username LIKE '%test%email%'
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
注意:查询将在EntityFramework(版本6.1.3)中执行
有谁知道如何进行此查询?我知道我可以和EndWith一起开始,但我必须解析字符串,我可以拥有%2324%335%而现在呢?有什么方法可以做到这一点吗?
我在 EF Core 应用程序中有以下方法
public List<Prj_Detail> GetByOrg(string org)
{
var data = _context.Prj_Details.Where(w => w.Account_Name == org).ToList();
return data;
}
Run Code Online (Sandbox Code Playgroud)
在这里,==我需要检查Like如何在我的方法中做到这一点
c# ×7
linq ×5
sql ×3
asp.net ×2
linq-to-sql ×2
t-sql ×2
.net ×1
.net-4.0 ×1
.net-core ×1
asp.net-mvc ×1
ef-core-2.0 ×1
sql-like ×1
sql-server ×1
wpf ×1