通用工作单位& (可扩展的)存储库框架通用工作单元& (可扩展)存储库框架与延迟加载

时间:2014-12-26 14:52:31

标签: asp.net-mvc entity-framework-6 repository-pattern

  1. 在我的架构师解决方案中,我使用了通用工作单元& (可扩展)存储库框架开源来自此链接: https://genericunitofworkandrepositories.codeplex.com/ 但是示例代码没有使用延迟加载,所以我在我的项目中激活了它,但它不起作用?
  2. 2.Normaly与实体框架(延迟加载模式是活动的)当我们检索一个对象时,相关对象没有重新获得unitl我们调用他的相关对象的一些属性。但在我的项目与这个框架和延迟加载模式我没有这个结果相关是自动加载检索我的parrent对象?我需要帮助吗?

    这是我数据上下文的构造函数:

     public DataContext(string nameOrConnectionString)
                : base(nameOrConnectionString)
            {
                _instanceId = Guid.NewGuid();
                //Configuration.LazyLoadingEnabled = false;
                //Configuration.ProxyCreationEnabled = false;
    
            }
    

    这是我的控制器示例:

                  //Loading agencies only (but not working because i get all the related objects)
            IList<Agency> Agence = AgencyService.Query().Select().ToList();
    
            Agency Ag = Agence[0];
    
            //Loads Agency company for particular Agency only (seperate SQL query) => also not working 
            Company company = Ag.Company;
    

1 个答案:

答案 0 :(得分:0)

将延迟加载设置为活动:

  1. context.Configuration.ProxyCreationEnabled应为true。
  2. context.Configuration.LazyLoadingEnabled应为true。

  3. 导航属性应定义为public,virtual。如果属性未定义为虚拟,则Context不会进行延迟加载。