2つのエンティティを1:1の関係に関連付けたいと思っています。 Userはプリンシパルであり、UserActivationは依存していますが、それがどのように機能するかはわかりません。
public class User
{
[Key]
public Guid Id { get; set; }
public string Name { get; set; }
public string Lastname { get; set; }
public string Username { get; set; }
public virtual UserActivation UserActivation { get; set; }
}
public class UserActivation
{
[Key]
public Guid Id { get; set; }
public Guid UserId { get; set; }
public bool Active { get; set; }
public virtual User User { get; set; }
}
'virtual'キーワードを削除しようとし、ForeignKey( "UserId")またはForeignKey( "User")を追加しようとしました。 。データ注釈のみを使用して1対1の関係を作成したい。どんな助けでも本当に感謝しています。また、私の両方のクラスには独自のPKがあります。
外部キーは1:1の試行ではサポートされていません。
public class User
{
[Key]
public Guid Id { get; set; }
public string Name { get; set; }
public string Lastname { get; set; }
public string Username { get; set; }
public virtual UserActivation UserActivation { get; set; }
}
public class UserActivation
{
[Key]
[ForeignKey("User")]
public Guid Id { get; set; }
public bool Active { get; set; }
public virtual User User { get; set; }
}
タイプ「Model.PersonPhoto」と「Model.Person」の間の関連付けの主要な終了を判別できません。この関連付けの主要な端は、リレーションシップFluent APIまたはデータアノテーションを使用して明示的に構成する必要があります。
Julie Lehrmanがこれについて her Code First book で説明しています。
「この問題は、依存クラスにForeignKeyアノテーションを使用して、外部キーが含まれていることを識別することで最も簡単に解決できます。1対1の関係を構成する場合、Entity Frameworkは、依存関係の主キーも外部キーである必要があります。この例では、PersonPhotoが従属であり、そのキーであるPersonPhoto.PersonIdも外部キーである必要があります。例4-21に示すように、ForeignKeyアノテーションをPersonPhoto.PersonIdプロパティに追加します。ナビゲーションを指定することを忘れないでください。 ForeignKeyアノテーションを追加するときの関係のプロパティ。」