c# - .Net core中查询PK表时如何获取FK表数据?
问题描述
我spe_manuscript_num
在表中有一个主键SPE_COMMON_DATA
,它是其他表的 FK:
但是 .NET Core 模型是Scaffold-DbContext
这样生成的:
public partial class SpeCommonData
{
public string SpeManuscriptNum { get; set; }
..
..
public virtual ICollection<SpeAttachment> SpeAttachment { get; set; }
public virtual ICollection<SpeMiscData> SpeMiscData { get; set; }
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<SpeCommonData>(entity =>
{
....
//nothing about FK tables
}
modelBuilder.Entity<SpeMiscData>(entity =>
{
entity.ToTable("SPE_MISC_DATA");
entity.Property(e => e.Id)
.HasColumnName("id")
.HasColumnType("numeric(38, 0)")
.ValueGeneratedOnAdd();
entity.Property(e => e.SpeManuscriptNum)
.IsRequired()
.HasColumnName("spe_manuscript_num")
.HasMaxLength(32)
.IsUnicode(false);
....
entity.HasOne(d => d.SpeManuscriptNumNavigation)
.WithMany(p => p.SpeMiscData)
.HasForeignKey(d => d.SpeManuscriptNum)
.HasConstraintName("FK__SPE_MISC___spe_m__02084FDA");
});
modelBuilder.Entity<SpeAttachment>(entity =>
{
entity.HasKey(e => e.AttachmentId)
.HasName("PK__SPE_ATTA__B74DF4E2D1989600");
entity.ToTable("SPE_ATTACHMENT");
entity.Property(e => e.AttachmentId).HasColumnName("attachment_id");
...
entity.Property(e => e.SpeManuscriptNum)
.HasColumnName("spe_manuscript_num")
.HasMaxLength(32)
.IsUnicode(false);
entity.HasOne(d => d.SpeManuscriptNumNavigation)
.WithMany(p => p.SpeAttachment)
.HasForeignKey(d => d.SpeManuscriptNum)
.HasConstraintName("FK__SPE_ATTAC__spe_m__3EA749C6");
});
我的问题是,当我查询表时,SPE_COMMON_DATA
我无法根据FK
我不知道任何定义的内容来提取其他表数据modelBuilder.Entity<SpeCommonData>
?
查询时如何获取其他表数据SPE_COMMON_DATA
,如 ORM 模型?
解决方案
您的实体应该引用具有 FK 关系的实体。然后在查询时您可以使用 EF 的 Include 方法,以便它也可以查询并返回 FK 表。
你能检查这个链接吗 docs.microsoft.com/en-us/ef/ef6/querying/related-data
推荐阅读
- microsoft-graph-api - 图 REST API 身份验证
- reactjs - 在 Azure 上无服务器部署静态反应应用程序的正确方法是什么?
- install4j - install4j:是否有可能对所有媒体都有完整的更新体验?
- javascript - 如何获取 Ant Design Option 值并将其传递到 React 中的 POST
- python - ModuleNotFoundError:没有名为“PyQt5”的模块 - Windows PyCharm
- terraform - 可以使用字符串和地图元素的 Terraform 地图吗?
- mysql - 将日期范围转换为月份范围,除以金额[不是什么程序]
- excel - EXCEL 函数仅将最后 3 个值与逗号分隔的地址分开
- node.js - 在 Atom(编辑器)中放置一个 Electron BrowserView/BrowserWindow
- r - 从列表中的数据框的多个列中删除异常值