テーブルに隣接モデルが適用されている(ID、ParentID)場合、どのように階層をSubsonic 3で返すことができますか?Subsonic 3と隣接モデル
答えて
すべてのクラスは部分的なものなので、クラスの新しい部分を作成して(カテゴリと言う)、子コレクションを作成します(SubCategoriesと呼ぶ)。オブジェクトをメモリにロードすると、サブコレクションを読み込むことができます。
var allCategories=Categories.All().ToList();
allCategories.ForEach(x=>x.SubCategories=allCategories.Where(y=>y.CategoryID==x.ParentID));
これはフリーハンドですが、それが理念です。
私はこれを常に使用しています。すべての行を読むだけです。それはあなたが後で行で行うことです。私は、ツリーを表示するためにIDとParentIDを自動的に選ぶDevExpressツリーコントロールにそれらを送ります。または、数行の再帰を使用して、ツリーをたどり、好きなことをすることができます。
var result = from _db.Products select p;
これは私がRobに感謝していますが、再帰関数がまだ必要かどうか疑問です。 LINQの代替品はありますか?
var allCategories = Table_1.All().ToList();
allCategories.ForEach(x => x.Children = allCategories.Where(y => y.ParentID == x.ID));
var topLevel = allCategories.Where(f => f.ParentID == 0);
s.AppendLine("<ul>");
DoStuff(topLevel);
s.AppendLine("</ul>");
private void DoStuff(IEnumerable<Table_1> toplevel)
{
foreach (var lve in toplevel)
{
s.AppendLine("<li>"+lve.Title);
if (lve.Children.Count() > 0)
{
s.AppendLine("<ul>");
DoStuff(lve.Children);
s.AppendLine("</ul>");
}
s.AppendLine("</li>");
}
}
これについて新しい質問を作成することをお勧めします。おそらくもっと回答が得られます –
機能やSPを使用する場合は、SQL Serverでこれを行うことができます: http://blog.wekeroad.com/ブログ/呪われた再帰 - 再帰的な結合を照会する/ –
私は私の解決策に固執すると思います – Jon
- 1. SubSonic 3とインラインクエリ
- 2. 隣接モデルは、idはリーフノード
- 3. Subsonic 3 SVN CheckoutとT4
- 4. Subsonic 3州
- 5. Subsonic 3アクティブレコードテスト
- 6. subsonic 3 scaffolding
- 7. jqGridの子を取得Treeview隣接モデル
- 8. SubSonic 3 Simple Query Tool
- 9. 隣接隣接集計
- 10. マルチグラフと隣接リスト
- 11. 隣接リストとグラフ
- 12. SubSonic 3ステップバイステップWinForm App VB.Net生成とセットアップ
- 13. SubSonic 3とLinqのパラメータ化クエリ
- 14. SubSonic 3 IncludeTablesの設定
- 15. SubSonic 3インストールの質問?
- 16. 隣接行列と有向グラフの隣接リスト
- 17. 隣接リストと隣接行列の相違
- 18. 隣接行列DFSとBFS
- 19. SubSonic 3テストデータベース "SubSonic"はどこにありますか?
- 20. 隣接リストモデル+ウェブサイトナビゲーション
- 21. は隣接値
- 22. 隣接リストindegree
- 23. 隣接リスト
- 24. symfony2隣接関係リストのモデルでのフォームの使用
- 25. ブレッドクラム/ツリーパスからアイテムを取得する(隣接モデル)
- 26. SubSonic 3 ActiveRecordの問題 - 空白データ
- 27. DataRelation Subsonic 3に相当する
- 28. SubSonic 3.0.0.2/3 |構造体.tt問題
- 29. T4テンプレート - SubSonic 3 - ビルド時に実行
- 30. 多対多の関係Subsonic 3(SimpleRepository)
私の質問に関するアイデアは私のポストで概説されていますか? – Jon
私は別のクラスを作成し、別のメソッドを介して "構造化された"ビットにアクセスすることを言及したいと思います - 多分SubSonicコアメソッドを呼び出す代わりに "GetItemHierarchy"のようなもの。 –
GetItemHeirarchyというメソッドを作成しても、私はまだその内部にコードを置くだけです。すべてのレコードを返す必要があるため、Childrenコレクションを生成するためにCore All()メソッドを使用する際の問題は何ですか? – Jon