在MVC 4应用程序中使用Unity with Entity Framework的最佳实践是什么

 mobiledu2502884523 发布于 2023-01-31 10:27

我正在努力使用MVC 4应用程序中的Entityframework,利用Unity for Dependency注入和Automapper将对象自动化到DTO.我从一个问题跑到另一个问题,EF有时会返回旧数据,所以我认为我的设计不够好.

我有什么:

要在我的Application_Start中配置Unity:

var UnityContainer = UnityConfig.GetConfiguredContainer();
Mapper.Initialize(cfg => cfg.ConstructServicesUsing(type => UnityContainer.Resolve(type)));
UnityContainer.Resolve().MapAutoMapper();
...

在UnityConfig.RegisterTypes中:

container.RegisterType(new ContainerControlledLifetimeManager())
...

我的存储库使用构造函数依赖注入:

public class MSSQLTenantRepository : IDalTenantRepository
{
   private readonly IMyContext _Db;
   public MSSQLTenantRepository(IMyContext db)
   {
      Db = db;
   }
...

我的控制器也使用构造函数依赖注入:

public class TenantController : Controller
{
   private readonly ITenantRepository _TenantRepository;
   public TenantController(ITenantRepository tenantRepository,
   {
      _TenantRepository = tenantRepository;
   }
...

自动配置配置:

public class AutoMapperConfig
{
    private readonly ITenantRepository _TenantRepository;
    public AutoMapperConfig(ITenantRepository tenantRepository)
    {
        _TenantRepository = tenantRepository;
    }
...

问题:我有时会从第一个请求中获取旧数据.

当我手动更新de SQL Server中的数据时,EF的返回对象不会反映更改

当我尝试不同的选项时,我也遇到了关于多个上下文的错误(由于Automapper)

我的问题:

使用Unity,MVC4,EF 6,存储库和Automapper的最佳做法是什么?

放置代码的位置(例如,在Unity.AaxActivator的global.asax.c或UnitiConfig.cs中?

我是否需要显式处理dbcontext,如果是这样的话:在哪里这样做?

关于这个主题有很多说法,但没有任何内容涵盖所有内容.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有