Ich versuche, eine Textsuche für eine Teileigenschaftsübereinstimmung für verwandte Entitäten durchzuführen.Partielle Linktextsuche mit Enthält
Meine Einheiten sind:
public class TradeContact
{
[Key]
public int TradeContactId { get; set; }
public virtual ICollection<Region> Regions { get; set; }
}
public class Region
{
[Key]
public int RegionId { get; set; }
public virtual ICollection<TradeContact> TradeContacts { get; set; }
}
Mein Ziel ist es, dass, wenn ein TradeContact die folgenden Regionen hat: Sydney, Brisbane, Darwin, dann sollte ich für ‚Syd‘ suchen können, dass TradeContact Datensatz abzurufen.
Derzeit wie dies Ich suche:
TradeContacts = TradeContacts
.Where(s => s.Regions.Select(x => x.Name.ToUpper())
.Contains(searchString.ToUpper()));
Dieser Code vollständige Übereinstimmungen gefunden werden, so ‚Sydney‘ wird meinen TradeContact zurückkehren, aber es auf teilweise Übereinstimmungen nicht funktioniert.
Was habe ich falsch gemacht?
@wudzik Dies ist kein Duplikat dieser Frage. OP weiß bereits, wie man einen Vergleich durchführt, sie fragen, wie man den Vergleich in einer Liste von Strings mit LINQ durchführt. Genauer gesagt fragen sie, was mit der aktuellen Lösung, die sie haben, falsch ist, da sie bei Teilübereinstimmungen nicht übereinstimmt. – Abion47
Nun, bis diese Frage unflagged wird, hier ist Ihr Arbeitscode, und Entschuldigung, dass ich es nicht besser als Kommentar formatieren kann: 'TradeContacts = TradeContacts.Where (s => s.Regions.Any (r => r.Name .ToUpper(). Enthält (searchString.ToUpper()))); ' – Abion47
@wudzik Diese Frage bezieht sich nicht auf die Frage, die Sie in _any_ way als doppelt markiert haben. – Evk