4

私はASP.NET Entity Framework 4.1を使用しています。MVC 3(C#)EF 4.1のdbcontextエンティティをforeachする方法はありますか?

私のDbContext内のすべてのエンティティをforeachしたいと思います。動的ビューを作成するために、自分のエンティティを動的に参照できるようにする必要があります。

私はLermanの本、2つのMVC(2 & 3)本、msdn、asp.netなどを読んでいます。

エンティティに到達するためにObjectContextを使用する必要があるようです。それが正しい方法であれば、それをどうやって行うのかは分かりません。助けてください。ありがとうございました。

答えて

0

あなたが何を求めているのか正確にはわかりません。あなたは動的にあなたはリフレクションを使用できDbContextの内部DbSets参照する場合:

DatabaseContext context = new DatabaseContext(); 
var contextObject = context as Object; 
var contextType = contextObject.GetType(); 
var properties = contextType.GetProperties(); 
String result = String.Empty; 
foreach (var property in properties) 
{ 
    result += property.Name + "\n" 
{ 

をしかし、完全に正直に言うと、私はあなたが求めているものや欲しいものを知りません。私はあなたにまだ答えがないのを見たので、私は私の2セントを与えるだろうと思った。

+0

ありがとうございました。これは私に文字列としての名前を取得しますが、私はHtml.DisplayFor()を実行すると、無関係なプロパティの束を表示します(なぜなら、それらは私が推測しているプロパティとしてキャストされているからです)。私は手動で特定のエンティティをコレクションに追加して、それらをcshtmlビューで動的に使用する方法を教えてください。申し訳ありませんが、私はまだC#とオブジェクトプログラミングの初心者です。 – Benjamin

+0

あなたが持っているコードを投稿する必要があります。あなたが持っているものを本当に理解できないので、必要なものを推測することは難しいです。 – OpticalDelusion

+1

私のような何かをしたいと思います。(私のコンテキスト内のエンティティ) '@foreachを//アドレス、電話番号を、部分図の名前の文字列として何 { \t @RenderPartial(エンティティの名前、部分図における部分図のオブジェクトモデルとしてエンティティ自体) } ' そして多分これ: このモデル/エンティティのナビゲーションプロパティである ' @foreach(エンティティ) {\t Html.EditorFor(関連するnav propエンティティ) } ' これはとても簡単です。しかし、私は完全な初心者ですので、おそらく私は意味がある方法で尋ねないでしょう。 Julie Lermanは、EFブックでObjectStateManagerを使用する方法について話しました。しかし、私はそれを使う方法を知らない。 – Benjamin

0

Entity SqlとCreateQueryの呼び出しを使用してクエリを構成します。

これが開始するかどうかを確認してください。

http://www.codeproject.com/Questions/208209/Problem-with-Entity-SQL?display=Print

 
ObjectQuery query = ctx.CreateQuery("SELECT P FROM WebStoreEntities.Customers AS P"); 

エンティティの名前を取得する方法は100%確実ではないイム - OpticalDelusions方法を試してみてください - しかし、あなたがそれらを持っていたら、これは役立つかもしれません。

すべてを動的に組み込む必要がありますが、結果のタイプには問題がありますが、試してみてください。

あなたも(たとえば)この操作を行うことができ
+0

こんにちはありがとうございます。投稿したスニペットの特定のエンティティを既に選択したようです。私はエンティティのコレクションをループし、コレクションの各エンティティのためのヘルパーをhtml.displayfor/editorfor生成することができるようにしたいと思います。 – Benjamin

+0

私は、動的クエリーのために、このメソッドと一緒にエンティティの名前を取得するために、OpticalDelusionsの方法を試してみました。これは、返されるオブジェクトの型のために、最終的にはあなたのために働くかもしれないし、うまくいかないかもしれません...私は質問しなければなりません...なぜ、あなたはこれを例にとらないようにしようとしていますか?それぞれを含むviewmodelあなたがあなたのデータベースに持っているモデルタイプ? –

+0

まだ分かりません。ビューモデルがこれを解決するだろうか?ネストされた部分的なビューと複雑なモデルバインディングを持つことができますか? – Benjamin

3

foreach (var dbItem in dbContext.Items) 
{ 
    //do what you want inside the loop with the dbItem 
    sList.Add(new SelectListItem() {Text = dbItem.ItemName, Value = dbItem.ItemTag}); 
} 
関連する問題