まだエンティティフレームワークに慣れていますが、私はエンティティのidのプライベートセッターを持っている以下のようなコードを見てきました。なぜエンティティにプライベートセッターを持っているのですか
public int Id { get; private set; }
public string FirstName { get; set; }
public string LastName { get; set; }
なぜ個人にはプライベートセッターが必要ですか?とにかくこのIDフィールドはデータベース内で自動生成され、その理由はプライベートに設定されていますか?
また、以下のようなエンティティでプライベートコンストラクタとパブリックコンストラクタが必要なのはなぜですか?
private Emp() { }
public Emp(string name, string lastname)
{
FirstName = firstname;
LastName = lastname;
}
ああ、そのためにはプライベートとパブリックのコンストラクタを必須としていますか? – Happy
@Happy、いいえ、エンティティを作成できるようにEF用の_parameterless_コンストラクタを持つことは必須です。それはプライベートでもパブリックでも構いませんが、それは問題ではありません。他のすべてのコンストラクタはオプションです。通常、パラメータのないコンストラクタは1つだけ作成されます(またはコンストラクタはまったく作成されません。パラメータのないコンストラクタは自動的に生成されます)。しかし、あなたの例では、作成者は姓と名義を提供せずに新しいEmpを作成したいので、開発者はそれを忘れることはありません。そのため、2つのコンストラクタがあります。 – Evk
あなたはその必須ではないことを意味しますか? – Happy