EF Core 3.0 1:0与流利的关系

布雷特·威廉姆斯

EF Core 3.0 ...对于这种完全正常的映射,我找不到精确的答案。
主体到从属,没有反向指向主体的指针,关系为1:0,设置了类型对象/查找表。问题在于对象键名“ RunId”与EFCore生成的键名“ ServiceRunId”不同

如何使用Fluent API替换[ForeignKey(“ aServiceRun”))批注?

这是我当前的Fluent设置,但是我不知道将ForeignKey映射放在何处。

aBuilder.Entity <ServiceRun>()。HasKey(new string [] {“ RunId”});

aBuilder.Entity <Service>()。HasOne(s => s.aServiceRun);


Class Service {        
  public int ServiceId {get; set;}

  [ForeignKey("aServiceRun")]
  public int RunId { get; set; }

  public virtual ServiceRun aServiceRun { get; set; }
}

Class ServiceRun {
  public int RunId { get; set; }

  public string description {get ;set; }
}

表格:

Service {
  ServiceId int

  RunId int
}

SerivceRun {
  RunId int

  Description string
}
伊万·斯托夫

如何使用Fluent API替换[ForeignKey("aServiceRun")]注释?

您正在寻找HasForeignKey流利的API。但是,为了获得对它(以及其他关系配置API)的访问权限,您需要使用,Has{One|Many}然后使用来定义关系With{One|Many}对于一对一关系,您还需要提供以下通用类型参数HasForeignKey

使用Fluent API配置关系时,请使用HasOneWithOne方法。

配置外键时,您需要指定从属实体类型-请注意HasForeignKey以下列表中提供的通用参数在一对多关系中,很明显带有引用导航的实体是从属的,带有集合的实体是主体。但这不是一对一的关系-因此需要明确定义它。

请注意,包含FK的实体始终是从属的,因此在您的模型中,ServiceRun是主体,Service是从属的,流利的配置如下:

modelBuilder.Entity<Service>()
    .HasOne(s => s.aServiceRun) // navigation property
    .WithOne() // no navigation property
    .HasForeignKey<Service>(s => s.RunId); // foreign key

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EF代码第一流利的映射:0-1到许多:HasOptional(),同一表

来自分类Dev

EF Core流利性映射到内部对象属性

来自分类Dev

EF Core 3 Casting无法翻译

来自分类Dev

我不想要的EF Core加载关系

来自分类Dev

EF Core 3 Linq无法翻译

来自分类Dev

映射到关系类型时EF Core 3添加迁移失败

来自分类Dev

将列映射到EF Core 3中的子对象

来自分类Dev

如何在EF Core 3查询中解析int?

来自分类Dev

Xamarin Forms,Sqlite,EF Core 3,迁移和大量混淆

来自分类Dev

EF Core 3:配置导航属性的后备字段

来自分类Dev

对EF Core 2.1关系的怀疑

来自分类Dev

定义实体之间的主键关系时,EF Core 3.1将创建名称为“ 1”的重复列

来自分类Dev

EF Core 3,优化很多包含/然后包含

来自分类Dev

在EF Core 3中映射json

来自分类Dev

EF Core 3 1对0关系问题

来自分类Dev

舍入一个接近0的负数时,.NET Core 3返回-0字符串

来自分类Dev

EF Core返回的子对象不超过3个

来自分类Dev

表格中多个1:1关系的EF Core 3.1.7数据注释

来自分类Dev

这样做有效吗:EF Core 3.1,多个(0..1)对1关系

来自分类Dev

EF Core 5,删除多对多关系

来自分类Dev

EF Core流利API中的多对多关系

来自分类Dev

EF Core中按ID和类型的关系

来自分类Dev

实体框架1与0的关系

来自分类Dev

不必要地在EF Core中加载关系

来自分类Dev

EF Core 在设置关系时设置为 null

来自分类Dev

.NET Core EF Select 对象,其中关系具有

来自分类Dev

EF Core 关系 - 冗余列 id

来自分类Dev

EF Core 2.0 中的种子一对多关系

来自分类Dev

从 EF Core 2 迁移到 EF Core 3