Lind.DDD.Repositories.EF層介(jie)紹~實現DbContext的動態注入
很久很久之前,我寫了Lind.DDD文章,有興趣可以閱讀《Lind.DDD敏捷領域驅動框架》,今天(tian)主要說一(yi)下,如何動(dong)態注入DbContext,而不是new一(yi)個DbContext子類。
- 配置文件添加上下文注冊

- 在ef倉儲中添加對IOC構造方法注入的支持
/// <summary>
/// 通過構造方法進行DbContext上下文的注入
/// </summary>
[InjectionConstructor]
public EFRepository(DbContext db)
{
//Db = new WEBDataEntities();
Db = db;
if (this.DataPageSize == 0)
{
int dataPageSize;
int.TryParse(System.Configuration.ConfigurationManager.AppSettings["BulkDataPageSize"] ?? "10000", out dataPageSize);
this.DataPageSize = dataPageSize;
}
}
- 直接在業務層使用對應的倉儲
public class UserService
{
IExtensionRepository<User_Data> userDataRepository;
IExtensionRepository<User_Code> userCodeRepository;
IExtensionRepository<User_Set> userSetRepository;
IExtensionRepository<User_Logs> userLogsRepository;
public UserService()
{
userDataRepository = UnityHelper.Instance.GetService<IExtensionRepository<User_Data>>();
userCodeRepository = UnityHelper.Instance.GetService<IExtensionRepository<User_Code>>();
userSetRepository = UnityHelper.Instance.GetService<IExtensionRepository<User_Set>>();
userLogsRepository = UnityHelper.Instance.GetService<IExtensionRepository<User_Logs>>();
}
}
