私は何をしようとしているのかを説明しましょう。Asp.Net MVCエンティティフレームワーク上書き可能な値を持つ親子子
WebsitePageという名前のテーブルがあります。このテーブルには、自分のサイトのすべてのページとそのページに関する情報が含まれています。次に、私はすべての顧客についてCustomerテーブルを持っています。次に、WebsiteWebsitePageという別のテーブルがあり、これはWebsitePageテーブルのいくつかの列の顧客の値を格納します。
したがって、エンティティフレームワークを使用して、これら3つのテーブルをインポートしました。私ができるようにしたいのは、値があれば、CustomerWebsitePageの値を持つ強く型付けされたWebsitePageリストを返すことです。たとえば、私の顧客の1人が私のウェブサイトのページの1つにCustomerWebsitePageNameを追加したとします。その場合、WebsitePage名の代わりにCustomerWebsitePageNameを含むWebsitePagesのリストを返したいと思います。しかし、それが上書きされていないので、他のすべてのWebページの元の名前。
私のWebsitePageテーブルには親子関係のための外部キーがあります。だから、私は同時に子供WebsitePagesを返すしたいと思います。私は関数のインポートを使用して私が望むものを得ることを試みたが、もちろん私はChildPagesを失った。
私は、EntityフレームワークとLINQを使用したいものを得るためにすべてを試しました。しかし、これまでのところ私が試したほとんどのものは、例外がスローされて終了します。ここではいくつかある:
- をEntityCollectionはすでに
- エンティティまたは複合型「MyEntityModel.WebsitePage」はLINQのエンティティへのクエリで構築することができません初期化されています。
私はすべてこの問題を回避することができる方法の一つのアイデアを持っている、そしてそれは私のWebsitePageテーブルにParentPageIDを複製することですが、これは本当に原則の多くに違反しているようだと、私は本当にただありませんこれに関連するメンテナンスの頭痛を追加したい。
誰でもこのタイプのものを達成するためのアイデアはありますか?
A simple DB diagram. http://images.tehone.com/screenshots/2009-08-17_013009.png
あなたはエンティティクエリに悪いLINQを書いたように見えますが、実際にそのクエリと、それを使用するコードを見ることなく、それはするのは難しいです確かに。一見すると、あなたのDBマッピングはそのまま現れます。 –