1

流暢なAPIのセールスポイントの1つ(私はマイナーなものを知っています)は、流暢な呼び出しのチェーンが自然言語に似ている可能性があることです。これはすべて一見見栄えがしますが、Code Firstの流暢なマッピングAPIの場合と同様に、通話は英語から離れすぎています。私が見たすべてのドキュメントでは、常に1つの説明で通話チェーン全体が説明されています。

私はカバーの素材を探しています。たとえば、次のような流暢なコールチェーンです。

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

「ステータスにはログインが必要であり、このログインには多くのステータスがあります。」

私がそのチェーンをどのように読んでいるかについてさえ正しいのであれば、読者は私が何を意味するのかを知っていると確信しています。

4

1 に答える 1

2

マッピングの意味を完全に説明するために、もう少し複雑にしましょう。次の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必要なナビゲーションプロパティをマップしました。このインスタンスは多くのステータスに関連付けることができますが、マップされたナビゲーションプロパティを公開してそれらにアクセスすることはできません。LoginLoginInfo

元の流暢な説明はLoginInfo、のこの一般的な引数HasRequiredが自動的に推測されるため、に関する情報を非表示にします。

于 2012-04-22T12:39:02.700 に答える