我需要在两个表之间建立一对一的关系,但只有单向关系。
[Accounts]
account_id
name
etc...
[SalesReps]
sales_rep_id
account_id
account
etc...
因此,我希望SalesReps表与Accounts有关系,但我不希望Accounts引用SalesReps。
我试过了:
modelBuilder.Entity<sales_rep>()
.HasRequired(a => a.account)
.WithMany()
.HasForeignKey(a => a.account_id);
但这给了我:
sales_rep_account_Source ::多重性在Role&#39; sales_rep_account_Source&#39;中无效。在关系&#39; sales_rep_account&#39;。由于“从属角色”是指关键属性,因此“从属角色”的多重性的上限必须为“&#39; 1”。
答案 0 :(得分:0)
执行此操作的方法是使用WithRequiredDependent()配置。您的实体将是:
public class Account
{
public int Id { get; set; }
public string Name { get; set; }
}
public class SalesRep
{
public int Id { get; set; }
public Account Account { get; set; }
}
在OnModelCreating()方法中,您应该这样做:
modelBuilder.Entity<Account>().HasKey(x => x.Id);
modelBuilder.Entity<SalesRep>().HasKey(x => x.Id);
modelBuilder.Entity<SalesRep>().HasRequired(x => x.Account).WithRequiredDependent().Map(x => x.MapKey("AccountId"));
答案 1 :(得分:0)
事实证明,我所要做的就是:
modelBuilder.Entity<sales_rep>()
.HasRequired(a => a.account)
.WithOptional();