我有这个班级
public class Client
{
public int Id { get; set; }
public ICollection<Recipe> Recipes { get; set; }
public ICollection<Recipe> Favorites { get; set; }
}
与食谱类有2对1的关系
public class Recipe
{
public int Id { get; set; }
public int ClientId { get; set; }
public Client Client { get; set; }
}
我如何描述这两种关系?我需要一个额外的课程(最喜欢的)?
感谢您的帮助。
编辑:
我应该更清楚。 Client.Recipes是客户实际拥有的食谱:
modelBuilder.Entity<Client>()
.HasMany(c => c.Recipes)
.WithRequired(r => r.Client)
.HasForeignKey(r => r.ClientId);
Client.Favorites的问题在于它不拥有它们,因此Recipe.ClientId对于此特定关系无效。我需要一个关系表,我需要在课堂上表达它还是用Fluent Api表达?如果是,怎么样?
很抱歉,如果我一开始并不明确。
答案 0 :(得分:1)
您应该能够将它们定义为标准的1到N关系。应该是类似的东西
class MyContext : DbContext
{
public DbSet<Client> Clients { get; set; }
public DbSet<Recipe> Recipes { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Client>()
.HasOne(p => p.Clients )
.WithMany(b => b.Recipes ) .HasForeignKey(x => x.ClientId );
modelBuilder.Entity<Client>()
.HasOne(p => p.Clients )
.WithMany(b => b.Favorites ) .HasForeignKey(x => x.ClientId );
}
}