Entity Framework Database First ワークフローを使用しています。
モデルを作成し、Julie Lerman の Pluralsite コースで推奨されているように、エンティティ/クラス生成用の .tt ファイルを別のプロジェクトに移動しました (EF は初めてです)。
各エンティティ クラスの部分クラスを作成しており、いくつかのデフォルトを設定したいと考えています。明らかな答え (同様の質問に対する答え) は、コンストラクターでこれを行うことです。問題は、生成されたエンティティに既にコンストラクターがあることです。例えば:
-- 生成されたクラス --
public partial class User
{
public User()
{
this.EmailLogs = new HashSet<EmailLog>();
this.Listings = new HashSet<Listing>();
this.Visitors = new HashSet<Visitor>();
}
-- 推奨されるアプローチ --
public User()
{
this.CreatedOn = DateTimeOffset.Now;
this.IsAdminUser = false;
this.Token = Guid.NewGuid();
}
2 つの部分コンストラクターを持つことができないため、これは失敗します。
これらのプロパティを (DB の既定値ではなく) DotNet レイヤーに設定する必要があります。これは、保存する前に新しいオブジェクトを操作するときに設定する必要があるためです。
モデルへの編集を往復できるようにしたいです。つまり、オブジェクトに別のプロパティを追加する場合、エンティティ クラスを再コード生成できるようにしたいと考えています。したがって、エンティティ クラスを手動で編集することは、実際には優れた解決策ではありません。
確かに、私が見逃している明らかな解決策があります。