2

初めに私は私の英語をごめんなさいと言わなければなりません。

私はEntityFrameworkとコードファーストの方法を使用しています。頭の中に1つのアイデアがありますが、それを実現する方法がわかりません。私はプログラミングの初心者ではありませんが、常に流暢なNHibernateを使用していました。

私には1つのエンティティがあります:

public class User
{
    [Key]
    public Int32 Id { get; set; }
    public String Name { get; set; }
    // This property should be mapped on DB
    private String Surname { get; set; }

    // This one shouldn't be mapped
    public String GetSurname { get { return Surname; } set { Surname = "SomePrefix." + value; }   }
}

質問1.エンティティの私有財産をどのようにマッピングできますか?

コンテキスト内のOnModelCreating()のovverrideでこのプライベートプロパティにアクセスできません。

質問2.1つのパブリックプロパティのマッピングを無効にするにはどうすればよいですか?

結果として、次のように取得します。名前を設定しようとすると、先頭にプレフィックスを追加します。

4

1 に答える 1

2

エンティティ フレームワークは、プライベート プロパティに値を読み書きする必要があるため、プライベート プロパティをマッピングする方法を提供していないため、少なくともプロパティのパブリック get/set が必要です。

2番目の質問への回答として、モデルビルダーを使用できます(以下のようにマッピングを説明する私の好みの方法)

modelBuilder.Entity<User>().Ignore(u=>u.GetSurname);

または属性を追加します

[NotMapped]
private String Surname { get; set; }
于 2013-02-18T06:37:09.043 に答える