1

流式 API 的一个卖点(我知道一个小卖点)是流式调用链可以类似于自然语言,乍一看这一切看起来都很棒,但就像 Code First 流式映射 API 的情况一样, call 与英语相去甚远,我见过的所有文档总是在一个描述中描述整个调用链。

我正在寻找封面材料,例如像这样的流畅调用链:

modelBuilder.Entity<Status>().HasRequired(s => s.Login).WithMany();

“一个状态需要一个登录名,这个登录名可以有很多状态。”

如果我在阅读该链的方式上什至是正确的,但我相信读者知道我的意思。

4

1 回答 1

2

让我们稍微复杂一点,以充分描述映射的含义。假设您有这两个实体:

public class Status
{
    public int Id { get; set; }
    ...
    public virtual LoginInfo Login { get; set; }
}

public class LoginInfo
{
    public int Id { get; set; }
    ...
    // No navigation property to Status
}

现在您编写映射语句:

modelBuilder.Entity<Status>().HasRequired(s => s.Login).WithMany();

这句话的翻译应该是这样的(我相信母语人士可以形成更好的解释):

实体Status已经映射Login了访问相关LoginInfo实体实例所需的导航属性,其中该实例可以与许多状态相关,但它不公开映射的导航属性来访问它们。

原始流利的描述隐藏了关于的信息,LoginInfo因为这个通用参数HasRequired是自动推断的。

于 2012-04-22T12:39:02.700 回答