コンストラクターに渡すパラメーターを使用していくつかの質問を見つけましたが、それを特定の問題に変換することはできません。
MVCと組み合わせてEFコードファーストを勉強しています。
抽象クラスとインターフェースをベースとして作成しました。
public abstract class RepositoryBase<C, T> : IRepositoryBase<T>
where T: class where C : DbContext, new()
public interface IRepositoryBase<T> where T : class
インターフェイスを持つ具象クラスで作成された私のモデルリポジトリのiv'e
public interface ICustomerRepository : IRepositoryBase<Customer>
public class CustomerRepository: RepositoryBase<PNMP, Customer>,
ICustomerRepository
PNMP (私のコードの最初のコンテキスト) には、内部パラメーター _username を設定する変更を追跡するためのユーザー ID を受け入れるコンストラクターのみがあります。
public override int SaveChanges()
{
var changeSet = ChangeTracker.Entries<IDatabaseBaseType>();
if (changeSet != null)
{
var modifiedEntries =
changeSet.Where(c => c.State== EntityState.Modified);
foreach (var entry in modifiedEntries)
{
entry.Entity.ModifiedDate = DateTime.Now;
entry.Entity.ModifiedBy = _username;
}
var addedEntries =
changeSet.Where(c => c.State == EntityState.Added);
foreach (var entry in addedEntries)
{
entry.Entity.CreatedDate = DateTime.Now;
entry.Entity.CreatedBy = _username;
}
}
return base.SaveChanges();
}
ID 変数を PNMP (コンテキスト) のコンストラクターに渡すにはどうすればよいですか
次を使用して、具体的なクラスをインターフェイスにバインドするためにNinject.MVC3を使用しています。
kernel.Bind<ICustomerRepository>().To<CustomerRepository>();