これはわかりません。 Employee withとIdフィールドというテーブルがあります。テーブルには、従業員のIDフィールドを指す外部キーを持つManagerIdフィールドも含まれています。エンティティとしてテーブルをエンティティデータモデルに追加すると、EmployeeChildrenコレクション要素とEmployeeParent要素を持つ新しいEmployeeエンティティが作成されます。私はすべての従業員を取得し、従業員のエンティティの完全な新しいインスタンスに入れることができます。従業員エンティティには多くの子があり、各子エンティティには複数の子があり、それぞれには親に戻るポインタがあります。Linq to Entities - ストアドプロシージャから「自己参照」を持つエンティティを取得します。
私が今必要とするのは、ストアドプロシージャを使用している従業員のサブセットを取得することです。今のところ、2人以上の従業員John Doeを検索すると、ストアドプロシージャは3行を返します。
社員マネージャーID名
1ヌルビル
2 1ジェーン
3 2ここではジョン・ドウ
は、検索を行うには、私のコードです:
using (var entity = new TimeEntryEntities())
{
var employees =
from E in entity.EmployeeSearch(search)
orderby E.Name
select E;
return employees.ToList<Employee>();
}
右今、このコードは3つの別個のエンティティを返します。どうやって1つのグループにまとめることができますか?
ストアドプロシージャを使用しない場合、これは期待どおりに機能しますか? LINQクエリを使用して1人の従業員を直接取得する場合は、「マネージャ」と「レポート」のコレクションが必要なように配置されていますか? –
それは動作しますが、私はそれが必要な方法で戻ってくることはありません。それは従業員を検索し、そのエンティティは親エンティティを持ちます。親エンティティは親と子を持ちます。私はトップレベルの親ではなく、低レベルの子供で始めることが必要です。私はそれが理にかなったことを願う –