小编Dal*_*rds的帖子

WithOptionalDependent与WithOptionalPrinciple - 最终答案?

我认为在何时使用WithOptionalDependent以及何时使用时获得明确的答案可能会有所帮助WithOptionalPrincipal.这两个函数的帮助有点不清楚,我发现自己正在挖掘其他网站上的多个Stack Overflow答案和答案,结合答案,以确信我的关系是正确的方向.

以下是MSDN所说的内容WithOptionalDependent:

将关系配置为可选:在关系的另一侧没有导航属性的可选.正在配置的实体类型将是依赖项,并包含主体的外键.关系所针对的实体类型将是关系中的主体.

以下是它所说的内容WithOptionalPrincipal:

将关系配置为可选:在关系的另一侧没有导航属性的可选.正在配置的实体类型将是关系中的主体.关系所针对的实体类型将是依赖的实体类型,并包含主体的外键.

"正在配置的实体类型"这一行总是让我困惑(我假设其他人).

在这个例子中:

class MyEntityA
{
    [Key]
    public int Id { get; set; }
    public int BId { get; set; }
    [ForeignKey("BId")]
    public MyEntityB B { get; set; }
}

class MyEntityB
{
    [Key]
    public int Id { get; set; }
}

modelBuilder.Entity<MyEntityA>().HasOptional(a => a.B).WithOptionalDependent();
Run Code Online (Sandbox Code Playgroud)

是"正在配置的实体类型"是指MyEntityA或MyEntityB?我认为它是前者.

如果这是正确的,你什么时候使用的例子是什么WithOptionalPrincipal?

我实际上在我的代码示例中认为它应该是,WithMany而不是WithOptional选项.显然我还是很困惑!

这两个函数都有重载,导航属性朝另一个方向发展.我认为那些重载不会改变那些答案,但如果我错了,请纠正我.

我希望这对更大的社区也有帮助.

c# entity-framework ef-code-first

46
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

ef-code-first ×1

entity-framework ×1