0

多数のビジネス エンティティを持つアプリケーションを作成しています。変更されるたびに、それに応じてレコードにタイムスタンプを付け、作成/変更ユーザーを配置するようにしたいと思います。エンティティのグループと、それらのエンティティのサービス クラスがあります。すべてのエンティティは IBaseEntity を実装し、BaseService を継承します。

public interface IBaseEntity
{
    int Id { get; set; }
    DateTime CreatedOn{ get; set; }
    DateTime LastModifiedOn { get; set; }
    Employee CreatedBy { get; set; }
    Employee LastModifiedBy { get; set; }    
}

public abstract class BaseService
{
    public void Create(IBaseEntity entity)
    {
        entity.CreatedBy = new Employee { Id = entity.Id };
        entity.CreatedOn = DateTime.UtcNow;
        entity.LastModifiedBy = new Employee { Id = entity.Id };
        entity.LastModifiedOn = DateTime.UtcNow;
    }
}

EmployeeService では、エンティティを追加またはアタッチする前に、基本の Update メソッドと Create メソッドを呼び出します。

public Employee Create(Employee employee)
{
        // Create User
        base.Create(employee);
        context.Employees.Add(employee);            
        context.SaveChanges();
}

理想的にはエンティティを参照渡ししたいのですが、これが不可能であることはわかっています。私の質問は、このコードを一元化し、各サービス クラス内に実装する必要がないようにするにはどうすればよいかということです。

4

1 に答える 1

1

イゴールは正しかった!「datetime2データ型をdatetimeデータ型に変換すると、値が範囲外になりました」というメッセージが表示されていました。値が設定されていないと想定していました。それは実際にはまったく別の問題によるものでした。私を正しい方向に向けてくれてありがとう。

于 2013-03-19T05:33:29.940 に答える