1
私は実用的なモデルを持っていますが、関係がデータベース内で2回作成されていることに気がつきました。もともと、テーブルには2つの列が作成されていましたが、指定された外部キー属性が追加されています。コードファーストEFリレーションシップ重複
私は、アカウントを使用できる多くの雇用主を持つAccountクラスを持っています。 (多くの1)ここでは、クラスである:ここ
public class Account
{
public int AccountId { get; set; }
[Required(ErrorMessage = Constants.ValidationMessages.FieldRequired)]
public string Name { get; set; }
public int? PrimaryUserId { get; set; }
[ForeignKey("PrimaryUserId")]
public Employer PrimaryUser { get; set; }
[ForeignKey("EmpAccountId")]
public ICollection<Employer> Employers { get; set; }
}
が継承された雇用者クラスが
public class Employer : User
{
public Employer()
{
DepartmentsToPost = new Collection<Department>();
Contacts = new Collection<Contact>();
}
[Display(Name = "Workplaces to advertise jobs")]
public virtual ICollection<Department> DepartmentsToPost { get; set; }
public int EmpAccountId { get; set; }
[ForeignKey("EmpAccountId")]
public virtual Account Account { get; set; }
public override string UserType
{
get { return "Employer"; }
}
}
あるユーザー表:
UserId
Username
FirstName
Surname
EmpAccountId
Discriminator
アカウント表があり
AccountId
Name
PrimaryUserId
Userテーブルへのリンクです。これはPrimaryUser
フィールドのものですが、これは正しいです。アカウント - >雇用者の2つの関係があります。 EFの名前はAccount_Employers
とEmployer_Account
です。これらは重複しています。
どうすればこのようなことを防ぐことができますか?
お返事ありがとうございました。私はちょうどテストとしてそれをやった。私の調査結果を正しい答えとして確認して嬉しいです! – Simon
サイモン、答えが良いならば、それを受け入れるだけではなく、それをアップヴォートすることを検討してください。 –
私は15評判までupvoteすることはできません...他にも私は非常にしたいと思います。ごめんなさい! – Simon