2017-05-14 16 views
0

私は次のエンティティを持っています(これはdatabase-firstを使用して作成されました)。 AspNetUserテーブルには2つの外部キーがあります。同じテーブルへの2つの外部キーを持つテーブルでの驚くべき命名

public partial class Message 
{ 
    public int Id { get; set; } 
    public string ToUserId { get; set; } 
    public string FromUserId { get; set; } 
    public string Message1 { get; set; } 
    public bool Viewed { get; set; } 
    public System.DateTime TimeStampUtc { get; set; } 

    public virtual AspNetUser AspNetUser { get; set; } 
    public virtual AspNetUser AspNetUser1 { get; set; } 
} 

私はAspNetUserFromUserIdに対応し、AspNetUser1ToUserIdに対応していることを見つけます。これは、ToUserIdが最初に定義されて以来私を驚かせて、私は1が2番目に来るものに追加されることを期待したいと思います。

私はそれをどちらかの方法でコーディングすることができますが、これがどのように決定されるかに関してルールが多少ランダムであれば、それをコーディングすることはできません。ルールを理解し、どのキーがどの外部キーに関連付けられるかを知ることが重要です。

誰もがここに関わるルールを知っていますか?

+1

わからない。おそらく、外部キー制約名によって順序付けられるでしょうか?しかし、あなたはedmxデザイナーでこれらの生成されたプロパティー名の名前を変更することになっています(これはedmxの更新版に残っています)。 –

+0

@GertArnold:EDMXのアップデートに耐えられるようにする方法を考え出すのに問題がありました。特に、更新がうまく動作しないため、通常はすべてのテーブルを削除し、スキーマが変更されるたびに再インポートする必要があります。 –

+0

@JonathanWoodですか?データベースの最初の経験は全く異なります。私は、更新を生き延びた多くの名前のカスタマイズをしています。 EDMXエディタを使用している限り、通常はOKです。更新は主に概念モデルではなくストアモデルを更新します(少なくともクラスやプロパティ名ではなく、すべてではありません)。 –

答えて

1

edmxでは、プロパティをクリックしてNameを変更することで、ナビゲーションプロパティの名前を変更できます。これはEDMXアップデートにも存続します。ただし、EDMXから完全に削除してデータベースから再度ビルドした場合は、再度名前を変更する必要があります。そうでなければ、あなたは大丈夫でしょう。

関連する問題