私は次のエンティティを持っています(これは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; }
}
私はAspNetUser
がFromUserId
に対応し、AspNetUser1
はToUserId
に対応していることを見つけます。これは、ToUserId
が最初に定義されて以来私を驚かせて、私は1
が2番目に来るものに追加されることを期待したいと思います。
私はそれをどちらかの方法でコーディングすることができますが、これがどのように決定されるかに関してルールが多少ランダムであれば、それをコーディングすることはできません。ルールを理解し、どのキーがどの外部キーに関連付けられるかを知ることが重要です。
誰もがここに関わるルールを知っていますか?
わからない。おそらく、外部キー制約名によって順序付けられるでしょうか?しかし、あなたはedmxデザイナーでこれらの生成されたプロパティー名の名前を変更することになっています(これはedmxの更新版に残っています)。 –
@GertArnold:EDMXのアップデートに耐えられるようにする方法を考え出すのに問題がありました。特に、更新がうまく動作しないため、通常はすべてのテーブルを削除し、スキーマが変更されるたびに再インポートする必要があります。 –
@JonathanWoodですか?データベースの最初の経験は全く異なります。私は、更新を生き延びた多くの名前のカスタマイズをしています。 EDMXエディタを使用している限り、通常はOKです。更新は主に概念モデルではなくストアモデルを更新します(少なくともクラスやプロパティ名ではなく、すべてではありません)。 –