如何在不更改模型的情况下使用Fluent API声明一对多
本文关键字:Fluent API 一对多 声明 情况下 模型 | 更新日期: 2024-07-27 11:31:58
我有两个类,如下所示。
class Donkey
{
public Guid Id { get; set; }
}
class Monkey
{
public Guid Id { get; set; }
public Donkey Donkey { get; set; }
}
现在我想配置模式,以便在数据库中设置关系。使用Fluent API,我将执行类似的操作。
protected override void OnModelCreating(DbModelBuilder model)
{
base.OnModelCreating(model);
model.HasDefaultSchema("dbo");
...
model.Entity<Monkey>
.HasRequired(_ => _.Donkey)
.WithMany(_ => _.Monkeys)
.Map(_ => _.MapKey("DonkeyId"));
}
问题是,现在我必须声明驴子中的猴子列表。我不想那样做。我仍然希望monkey使用外键指向一头驴,所以只有必需的状态是不行的,因为我需要指定我的自定义列名来将指向PK的FK存储在驴表中。
model.Entity<Monkey>.HasRequired(_ => _.Donkey);
因此,上面缺少映射(当我添加它时,它不会编译)。有没有一种方法可以在不实际更改Donkey类的定义的情况下解决它?
modelBuilder.Entity<Monkey>()
.HasRequired(x => x.Donkey)
.WithMany();