2

最初にC#でコードを使用してモデルを構築しました。モデルは、文字通りWebサイト構築アプリケーションのコンテナー要素を表します。つまり、モデルはDivタグまたはそのようなHTML要素を定義します。複数の子要素を含むことができるDivタグのように、これをモデルで表現しようとしましたが、DBへのスキャフォールディングでは、期待したものが得られません。

新しい多対多の結合テーブルを取得する必要がありますが、代わりに、単一のintデータ型を期待するDB内の単一の列のみを取得します。

モデルは次のとおりです。

 public class ElementContainer
{
    public int ElementContainerID { get; set; }
    public int PageId { get; set; }
    public int? ParentElementContainerID { get; set; }
    public string ElementContainerName { get; set; }
    public ElementType ElementType { get; set; }
    public string ElementClass { get; set; }
    public PageAsset PageAsset { get; set; } // content of container

    public List<ElementContainer> NestedContainers { get; set; }
}

最後の行は、ElementContainer_ElementContainerIDという列として表示される自己参照属性です。

前もって感謝します!

4

1 に答える 1

0

私はBahmanに同意します。DBが最初の方が簡単です。

私はあなたがしようとしていることをやろうとはしていませんが、あなたのコードはあなたが説明したことを正確に行う自己結合のように見えます.

これは一対多の関係です。EF ナビゲーションは、ネストされたすべての子コンテナーのリストを取得します。

EF Code-First で多対多の関係を作成する場合は、別のエンティティを作成する必要があります

 public class ContainerChildren
{
    public int ElementContainerID { get; set; }
    public List<ElementContainer> NestedContainers { get; set; }
}

このリファレンスは、正確なアイデアを得るのに役立ちますhttp://blogs.msdn.com/b/wriju/archive/2011/05/14/code-first-ef-4-1-building-many-to-many-関係.aspx

于 2013-01-26T21:45:10.170 に答える