を戻しながら、子コレクションにレコードを削除し、私は次のモデルがあります:C#のLINQフィルターと親
Parent Child
------------- -----
int id; int id;
string name; string name;
List<Child> children; bool isDeleted;
私はEFを使用していますが、私は子供が削除されていないところ親IDによって親の子コレクションを取得したいです。
私は次のことを試してみました:
var parentRepo = repoFactory.Get<ParentRepo>();
var parent = parentRepo.where(x => x.id == parentId && x.children.All(y => !y.isDeleted));
が、それは動作しませんでした。私はまた、以下を試してみましたが、働いていた:
var parentRepo = repoFactory.Get<ParentRepo>();
var parent = parentRepo.where(x => x.id == parentId);
.Select(x => new { id = x.id, name = x.name, children = x.children.Where(y=> !y.isDeleted).ToList() }).ToList()
.Select(y => new Parent { id = y.id, name = y.name, children = y.children }).ToList();
をしかし、私は働いているクラスはかなり大きいですし、私はそのような各プロパティを設定するために良い方法ですかどうかわからないですし、私はいくつか存在しない可能性があります将来私は新しい財産を追加する場合。
外側(親)を保持している間に内部コレクションをフィルタリングするフィルタが他にありますか? Thnaks!
https://stackoverflow.com/questions/7079378/how-to-filter-nested-collection-entity-framework-objects – Etienne
「うまくいかない」とはどういう意味ですか?何が起こり、どのようにあなたが望むものと違うのですか? – stybl