2012-04-25 21 views
3

私はEF Database Firstを使用しています。データベースでは、あるテーブルから別のテーブルへと多くのfkがあります(同じ)。モデルを生成するとき、EFはロール名として他の終わりのテーブル名を使用します。これは問題だ。私はこの問題を説明するために、以下の小さな例を作りました。外部キーを持つEFデータベースの最初のロール名?

私は、生成されたコードがテーブル名の代わりにfk-nameを使用したいと思います。 VSは現在発生しているモデルは、このように動作します:私は今

aTrip.coming_from 
aTrip.arrives_to 
aTrip.next_dest 

がしたいとき

aTrip.Location 
aTrip.Location1 
aTrip.Location2 

、私はVSの中で役割名を変更することができますその問題は、私が再インポートした場合、すべての変更が失われることです。また、dbにはこのようなfkがたくさん含まれているので、退屈な名前の変更がたくさんあります。

私がしたいのは、VSがどのようにモデルを生成するかを変更し、はるかに正しいfkのcol名を使用することです。それはできますか?

+----------------+     +-------------+ 
| Trip  |     |Location  | 
+----------------+     |    | 
|    |     +-------------+ 
|    |     | Name  | 
|    |*     1|    | 
| coming_from ---------------------    | 
|    |     |    | 
|    |     |    | 
|    |*     1|    | 
| arrives_to ---------------------    | 
|    |     |    | 
|    |     |    | 
|    |*     1|    | 
| next_dest ---------------------    | 
|    |     |    | 
+----------------+     +-------------+ 
+0

コードまず、これをやや支配します。 – mxmissile

答えて

0

私はこの質問が古いことを知っていますが、私はそれに遭遇し、私は私の意見を述べると考えました。

ここで、モデルをデータベースにインポートする際の外部キーのデフォルトの名前の変更に関する特定の質問に答える方法がわかりません。方法があるかもしれないが、私はそれを知らない!もし誰かがそれをしたら、それも聞いてみたいです。

しかし、私がこの状況で行うことは、データベースの変更がどのように行われているかを見ていることです。これはあなたの設定に合わないかもしれませんが、データベースがこの1つのアプリケーションからのみ使用される場合は、データベースから最初のモデルから最初のモデルに移動できます。

データベースから最初にインポートしてモデルを生成したら、そのモデルをデータベースの元のソースにしてそこですべての変更を行い、それに応じてデータベースを更新します。これは、あなたが望むどのような方法でも関係をリネームすることができ、データベースが変更されるたびにそのタスクを繰り返す必要がないことを意味します。

あなたの状況がそれよりも複雑な場合は、これはほとんど適用されないかもしれないが、一部の人にとってはオプションかもしれないことを完全に理解しています。

もちろん、一歩進んで、私が個人的に好むモデルコードを定義することもできますが、これは私の意見です!

関連する問題