2017-10-11 14 views
0

I持っている3つのテーブル 1. SalesDetailsフィールドSalesId、のProductId、数量を持つ、価格などfiels SalesId、SalesPersonId、CommPercentageなど 3.販売員持つフィールドSalesPersonId、firstNameの、lastNameのを持つ 2. SalesPersonDtlsエンティティフレームワークを使用して検索機能を実装

分割販売手数料とともに複数の販売員が1回の販売を行うことができるため、2番目の表があります。 私はproductname、sales date、sales person nameなどの検索画面にさまざまな入力を持っています。 モデルクラスを 'AsQuaeryable'として作成し、さまざまな条件と結果をリストに追加します。 検索条件に営業担当者の名前がありますが、これを検索に含める方法がわかりません。あなたは助けてもらえますか?

おかげ ピーター

+0

まず、読みにくい段落ではなく、実際のモデルをコードスニペットとしてコピーします。次に、現在のクエリを表示します。あなたがナビゲーションプロパティを定義していると仮定すると、 'var matches = context.SalesDetails.Select(** Project Your Needed Data Here **)のようなものを探しているでしょう。 .Any(sp => sp.lastName == "Jones" && sp.firstName == "Peter")。ToList() '。 –

答えて

1

ピーター
私はそれが正しい取得する場合は、あなたのビジネスモデルの関係は、このようなものです:

人(N)< ----->(1)セールス(1)< ----->(n)詳細
セールスアンドパーソナルリレーションズは "SalesPersonDtls"に、セールス&ディテールは "SalesDetails"に設定します。私はあなたのプロジェクトがより大きくより複雑になるにつれてより良い結果を得るために、エンティティを少し変更する方が良いと思います。
あなたのエンティティは次のようにする必要があります:あなたはPERSONNAMEに関連して販売をしたい場合は

Sale 
    { 
     List<SalesDetail> details; 
     List<Person> persons; 
     ... 
    } 
    SalesDetail 
    { 
     Sale 
     ... 
    } 
    Person 
    { 
     Sale 
     name 
     ... 
    } 



今では、本当に簡単です:

sales.Where(sale => sale.Persons.Any(person => person.PersonName == "your input name")); 

UPDATE: あなたのモデルを変更できない、または変更したくない場合: 最初にあなたはpersoを見つける必要がありますそれを "名前で検索"し、次に "SalesPersonDtls"を検索しsaleIdsを取得します。

関連する問題