相关疑难解决方法(0)

如何在Linq中使用SQL Like%?

我在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相当于使用百分号?

.net t-sql linq linq-to-entities sql-like

376
推荐指数
7
解决办法
37万
查看次数

与实体框架中的运营商一样?

我们正在尝试在实体框架中为包含字符串字段的实体实现"LIKE"运算符,但似乎不支持它.有没有其他人试图做这样的事情?

这篇博客文章总结了我们遇到的问题.我们可以使用contains,但这只匹配LIKE的最简单的情况.组合contains,startswith,endswith和indexof将我们带到那里,但需要在标准通配符和Linq to Entities代码之间进行转换.

.net sql-server linq-to-entities entity-framework

83
推荐指数
7
解决办法
10万
查看次数

Linq to Entities(EF 4.1):如何使用中间的通配符('%term%term%')执行SQL LIKE?

我想搜索一下:

Post Cereal
Run Code Online (Sandbox Code Playgroud)

得到这个:

Post Honey Nut Cereal
Run Code Online (Sandbox Code Playgroud)

那里的外卡是空格.

我知道我可以为每个术语做一个SPLIT和一系列ANDs和Contains()并转换为Linq Expression作为规范对象,但是在发送给SQL的术语中是不是有办法表示通配符?我查看了Linq to SQL中的SQL函数,但我不确定它在Linq to Entities中是什么.

我想做这样的事情:

term = '%' + term.Replace(' ', '%') + '%';
db.table.where( p => System.Data.Objects.SqlClient.SqlFunctions
                     .SqlMethods.Like(p.fieldname, term) );
Run Code Online (Sandbox Code Playgroud)

有什么建议?

c# linq-to-entities sql-server-2005 entity-framework-4.1

18
推荐指数
2
解决办法
7905
查看次数

实体框架v4.1 LIKE

如何构建我的查询以产生输出SQL查询,如:

SELECT
[viewRegisters].[Id] AS [IdRegister]
WHERE Name LIKE '%a%bc'
Run Code Online (Sandbox Code Playgroud)

要么

SELECT
[viewRegisters].[Id] AS [IdRegister]
WHERE Name LIKE 'a%b%c'
Run Code Online (Sandbox Code Playgroud)

要么

SELECT
[viewRegisters].[Id] AS [IdRegister]
WHERE Name LIKE 'a%b%c%'
Run Code Online (Sandbox Code Playgroud)

我正在使用.Net Framework 4.0,Entity Framework v4.1和C#.

EF v4.1转换此类型的linq查询:

((IQueryable<T>)Data).Where(z => z.Field.Contains("a%b%c%"));
Run Code Online (Sandbox Code Playgroud)

成:

SELECT
[viewRegisters].[Id] AS [Id]
WHERE Name LIKE N'a~%b~%c~%' ESCAPE N'~'
Run Code Online (Sandbox Code Playgroud)

那不是我想要的.我希望能够像在DB中直接使用"百分比"符号一样.

c# .net-4.0 entity-framework-4.1

8
推荐指数
2
解决办法
6154
查看次数

如何在.NET 4.0中的实体框架中进行"喜欢"通配符比较?

我正在使用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)

c# sql entity-framework .net-4.0

3
推荐指数
1
解决办法
4579
查看次数