实体框架 - 使用流畅的 API 配置获取相关项,而无需显式引用



假设我有具有可选属性 X 的数据库表 A。 我有带有复合键(Y,X(的表 B。这两个表没有任何显式关联。

例如

create table A
(
Id uniqueidentifier not null,
X uniqueidentifier null
)
create table B
(
Y uniqueidentifier not null,
X uniqueidentifier not null,
Constraint PK_B Primary Key (Y, X)
)

A 和 B 通过属性 X 隐式关联,从某种意义上说,X 是一个孤立 ID(其基表已被移出(

对于 C# 代码中的模型 A,如何使用属性 X 填充IList<B>以获取 B 中包含 X 的所有项?理想情况下,我想使用Fluent API配置。

例如

public class A {
public Guid Id {get; set;}
public Guid? X {get; set;}
public IList<B> RelatedItems {get; set;}
}
public class B {
public Guid X {get; set;}
public Guid Y {get; set;}
}

如何使用 Fluent API 配置我的实体,以便我可以使用类似的东西

var list = await context.AQuery()
.Include(a => a.RelatedItems)
.ToListAsync().ConfigureAwait(false);

或任何其他在 A 中填充 IList 的方法

提前感谢!

在你的模型中 x 是一个属性,一个属性有一个 getter,你可以设置 x 属性的 get 方法来从数据库中检索记录(类似于延迟加载设计模式(

public IList<SomeStuff> X {
get { // go get records from database }
}

这将花费你额外的费用,所以我不确定这是否是你想要的

最新更新