具有两个表的谓词构建器
|
一方可以具有一个或多个联系人对象。
我想选择街道名称包含特定关键字的所有参与方。
如果我只想在Party中搜索,可以使用下面的代码。但是,如何将其扩展为也可以在“联系人”中搜索?
public IQueryable<Party> SearchParties(List<string> keywords)
{
var predicate = PredicateBuilder.False<Party>();
foreach (string word in keywords)
{
var keyword = word;
predicate = predicate.Or(p => p.surname.Contains(keyword));
predicate = predicate.Or(p => p.lastname.Contains(keyword));
predicate = predicate.Or(p => p.number.Contains(keyword));
}
return db.Parties.Where(predicate);
}
您还有其他需要知道的吗?
编辑
我想我可以创建另一个谓词,然后再加入它们。就像是:
var predicate2 = PredicateBuilder.False<Contact>();
...并且在foreach中:
predicate2 = predicate2.Or(p => p.streetname.Contains(keyword));
但是在返回之前,我将如何加入谓词和谓词2?
编辑2
或者,在创建谓词构建器之前加入“聚会和联系人”?
编辑3
这是生成的类的一部分:
[global::System.Data.Linq.Mapping.TableAttribute(Name=\"dbo.Contact\")]
public partial class Contact : INotifyPropertyChanging, INotifyPropertyChanged
{
private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
private int _id;
// ...more properties
private EntityRef<Party> _Party;
public Contact()
{
this._Party = default(EntityRef<Party>);
OnCreated();
}
}
没有找到相关结果
已邀请:
2 个回复
很缴
旦彤