基本クラスから継承する POCO クラスがあります。EF Power Tools を使用してエンティティ データ モデルを表示しています。私が気付いたのは、5 つのプロパティのうち 2 つだけが基底クラスから表示されていることです。次に例を示します。
基本クラス:
using System;
namespace App.Model
{
[Serializable()]
public abstract class BaseEntity
{
public bool IsActive { get; private set; }
public DateTimeOffset Created { get; private set; }
public string CreatedBy { get; private set; }
public DateTimeOffset LastUpdated { get; protected set; }
public string LastUpdatedBy { get; protected set; }
private BaseEntity() { }
protected BaseEntity(DateTimeOffset created, string createdBy)
{
IsActive = true;
Created = created;
CreatedBy = createdBy;
LastUpdated = created;
LastUpdatedBy = createdBy;
}
}
}
継承クラス:
using System;
namespace App.Model
{
[Serializable()]
public class Person : BaseEntity
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public Person(DateTimeOffset created, string createdBy) :
base(created, createdBy) { }
}
}
モデルには LastUpdated と LastUpdatedBy のみが表示されます。
保護されたセッターとプライベートなセッターに関係があるのではないかと考えたので、表示されていない他の 3 つのプロパティを保護されたものに設定して、ツールを再実行してみました。IsActive、Created、および CreatedBy フィールドはまだ作成されていません。
この問題の原因と、5 つのフィールドすべてをモデルに表示するにはどうすればよいですか?