C# LINQ CRM 选择包含的位置
本文关键字:位置 包含 选择 LINQ CRM | 更新日期: 2023-09-27 18:33:47
我正在尝试使用" contains
"键从CRM实体中进行选择。
我试过这个:
var results = crm.new_supplycontractSet
.Where(x => x.new_city != null &&
x.new_city.Name.Contains("myChars"))
.ToList();
但它给了我这个错误:
无效的"位置"条件。实体成员正在调用无效的属性或方法。
而这个:
var result = (
from c in crm.new_supplycontractSet
from a in crm.new_comuneSet
where a.new_name.Contains(comune)
where c.new_city.Id == a.Id
select c)
.ToList();
但是我不知道该怎么做。第二次尝试给了我这个错误:
"SelectMany"操作之前必须有一个按实体 ID 筛选的"Where"操作。
如何通过包含过滤器进行选择? "x.new_city
"是来自crm.new_comuneSet的实体引用。
附注:我刚刚读了一些关于" entity.entityRef.Name.Contains()
"无法访问的内容,因为"Name"属性不是地面,因此它不可用于" .contains
"检查。
最后我明白了。 我必须安装 SqlClient
并使用以下contains
子句,而不是子句:
results = (from x in crm.new_supplycontractSet
where x.new_city != null
where x.new_address != null
where SqlMethods.Like(x.new_city.Name, "city")
where SqlMethods.Like(x.new_address.Name, "street")
select ....).ToList();
希望这对其他人有所帮助:)
您可以
尝试将字段和过滤器转换为小写或大写。
var results = crm.new_supplycontractSet
.Where(x => x.new_city != null &&
x.new_city.Name.ToLower().Contains(("myChars").ToLower()))
.ToList();
我认为如果您使用 StartsWith 代替(如果可能的话),会更好。