私はLINQとかなり新人です。私は基本的なことをすることができますが、私は専門家が必要です。LINQ - AND、NOTとNOTクエリ
私はEntity Frameworkを使用していますが、私は3つの列を持つテーブルを持っています。
public class Aspect
{
[Key, Column(Order = 0)]
public int AspectID { get; set; }
[Key, Column(Order = 1)]
public int AspectFieldID { get; set; }
public string Value { get; set; }
}
私は、ユーザーの入力から3つの単語リストを持っています。 1つはValue
フィールド(AND)になければならないフレーズまたはワードを含み、もう1つはValue
フィールド(ANY)になくてもよいフレーズまたはワードを含み、最後のリストにはフレーズまたはワードが含まれますValue
フィールド(NOT)。
すべての単語、すべての単語、およびNOT単語のいずれもがないすべてのレコードを取得する必要があります。
ここに私のオブジェクトがあります。
public class SearchAllWord
{
public string Word { get; set; }
public bool includeSynonoyms { get; set; }
}
public class SearchAnyWord
{
public string Word { get; set; }
public bool includeSynonoyms { get; set; }
}
public class SearchNotWord
{
public string Word { get; set; }
}
私がこれまで持っていることは
var aspectFields = getAspectFieldIDs().Where(fieldID => fieldID > 0).ToList();//retrieves a list of AspectFieldID's that match user input
var result = db.Aspects
.Where(p => aspectFields.Contains(p.AspectFieldID))
.ToList();
任意およびすべてのヘルプは高く評価され、これです。
これは私のオブジェクトです。これは意味をなさない。オブジェクトがデータベースに存在しない場合は、Entity Frameworkを使用していません。 – Aron
申し訳ありません@Aron、単語を保持するオブジェクトはデータベースにありません。それらはユーザーからの入力です。 'Aspect'オブジェクトはデータベースにあります。希望が助けてくれる – JohZant