3

週末に仕事を家に持ち帰るために、Git リポジトリに DB 作成スクリプトを含めるのを忘れていました。ああ、EDMX モデルから DB DDL を生成できるなんて幸運だろうと思ったのですが、エンティティ名ではなく、テーブル名にエンティティ セット名を使用するという、とんでもないことです。これは、血まみれの水から私が持っていた宿題の野心を吹き飛ばします.

これを回避し、元のテーブル名を元に戻すためのトリックは本にありますか?

4

2 に答える 2

0

エンティティ デザイナーに移動し、エンティティを選択してエンティティ セット プロパティを編集すると、エンティティごとにテーブル名を明示的に設定できます。残念ながら、これにより ObjectContext のコレクション プロパティの名前も変更されます。

奇妙なことに、SSDL エンティティではなく、EDMX の CSDL エンティティの名前のみを変更したとき、スクリプトを生成したときに、CSDL エンティティの名前が使用されました (予想される SSDL エンティティではありません)。EF デザイナーは非常に奇妙です。

1つの解決策は、属性を介してマッピングを明示的に制御できるCode Firstを使用することです。

于 2013-01-12T20:41:28.247 に答える
0

これに対するハックを提案することはできますが、試していないため、結果がわからず、少し作業が必要です。そうは言っても、DbContext空のモデル クラスを使用して実装 (スケルトンのみ) を作成し、実際のモデルの正確なモックアップを作成し、 Entity Framework Power Toolsを使用して、ファイルをクリックして DDL コードを生成しDbContextます (少し手間がかかることはわかっています)。

于 2013-03-04T02:15:24.027 に答える