0

私は約 2 年前に ADO.NET Entity Framework v2 に取り組みました。かすかな思い出があります。

ちなみに、私はたまたま非常に安全な (婉曲表現が必要なため) 環境で作業しており、多くのリンクがブロックされており、できることはあまりありません。それは勉強や仕事の邪魔になります。

したがって、最初からやり直すために必要ないくつかの基本的な質問については、このフォーラムに頼らなければなりません。今回はEntity Framework 4に取り組んでいます。ここで質問です。

これらの質問はすべて、EDM で生成されたエンティティに関連しています。つまり、Code Firstモデルではありません。

1) 私の理解は正しいですか? EDM デザイナーで生成されたモデルの任意の列名を変更できますが、何も壊れません。

2) 外部キーは、生成されたエンティティ クラスでナビゲーション プロパティとして表現されます。外部キー関係を維持するために特別な配慮は必要ありません。EF のバージョン 1 を思い出しました。ID プロパティだけがあり、バージョン 2 ではナビゲーション用の IQueryable/IEnumerable/EntityCollection/RelatedEnd プロパティが導入されました。外部キーの関係と参照を保持/維持するために何かする必要があるかどうかを知る必要があるだけですデータの整合性。する必要はないと思います。確認はいいでしょう。

3) ストアド プロシージャを実行するには、どのような方法がありますか? Context.Database オブジェクトで ExecuteSQL などを使用する方法、EntityClient API を使用する方法、EDM デザイナーのマッピング ウィンドウで InsertCommand、SelectCommand などでストアド プロシージャ名を指定する方法を思い出してください。これは正しいです?

4) エンティティのマッピング ウィンドウでこれらの SelectCommand をどのように使用しますか? ストアド プロシージャまたはユーザー定義の SQL 関数の名前を指定するだけですか?

5) テーブルのサブセットからエンティティを作成するにはどうすればよいですか? テーブルからエンティティを作成し、必要のない列をデザイナーから削除するだけですか? 選択したサブセットにない必須(SQL では NOT NULL) 値がある場合はどうなりますか?

6) 2 つ以上のテーブルのクエリまたは結合からテーブルを作成するにはどうすればよいですか。

4

1 に答える 1

1

1)デザイナーで列の名前を変更できますが、何も壊れてはいけません(名前が有効な場合)

2) ナビゲーション プロパティは、関連するエンティティを指します。EF4 では、外部キーが追加されました。外部キーのプロパティは基本的に、リレーションを処理するデータベースの方法を公開します。ただし、関係を変更するためだけに関連エンティティをロードする必要がないため、それらは役に立ちます。キー値を他のエンティティの ID に変更して、変更を保存するだけで済みます。

3) はい。プロシージャを直接実行することもできます。これは、CUD (作成/更新/削除) 操作に関連しないストアド プロシージャ用です。EF が CUD 操作のために作成した SQL ステートメントを実行するのではなく、CUD 操作をストアド プロシージャにマップできます。

4) これは少し範囲外だと思います - 画像付きのブログでやり方を見つけることができるでしょう。EFに関するまともな本には、これに関する章(または2つ)もあるはずです。特定の問題に遭遇した場合は、stackoverflow に質問を投稿してください。

5) デザイナでプロパティを削除し、S-Space 定義にデフォルト値を指定します。デザイナーと一緒にこれを行うことはできないと思います。edmx ファイルを右クリックして Xml エディターで開き、手動で編集する必要があります。これも参照してください: EFの問題、マッピングフラグメント、デフォルト値なし、null可能ではありません

6)データベースにビューを作成するか、E-SQLを使用してedmxファイルにエンティティセットを作成するか(これは読み取り専用になると思います)、エンティティ分割を使用できる場合があります。これらのそれぞれはおそらくそれ自体が大きなトピックなので、これらについてもっと見つけて、より具体的な質問/問題がある場合は戻ってくるべきだと思います

于 2012-12-06T00:32:57.463 に答える