4
我正在使用LinqKit PredicateBuilder(http://www.albahari.com/nutshell/predicatebuilder.aspx)進行搜索的方法。這是怎樣的關係是建立(實體框架4 CPT 5 POCO):LinqKit PredicateBuilder與EF 4 CPT 5表關係?
public class MusicSheet
{
[Key]
public int ID { get; set; }
public string Title { get; set; }
public string Key { get; set; }
public virtual ICollection<Author> Authors { get; set; }
}
public class Author
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
public string Bio { get; set; }
public virtual ICollection<MusicSheet> MusicSheets { get; set; }
}
我需要能夠構建爲MusicSheet
檢查(在Title
包含特定檢索詞)還有Name
謂語或可能包含該搜索詞的作者的Bio
。這是我目前有:
var predicate = PredicateBuilder.False<MusicSheet>();
foreach (var term in terms)
{
string keyword = term;
predicate = predicate
.Or(s => s.Title.Contains(keyword));
// TODO Check for Author Name & Bio
}
有什麼建議嗎?非常感謝你。
喬你好,非常感謝你的幫助。我有一個關於使用「或者」方法的問題。我應該按照上面顯示的方式來做,或者像這樣:'predicate = predicate.Or(s => s.Title.Contains(keyword))。或者(s => s.Authors.Any(a => a .Name.Contains(keyword)))......「或者它們實際上是相同的(使用多個」或「與」||「)?再次感謝。 – Saxman 2011-02-24 15:49:34
我會使用||當你可以的時候:結果表達式樹會更簡單。 – 2011-02-25 01:54:12