【问题标题】:The property context on type ProjectName.Repositories.MyRepo is not settable?ProjectName.Repositories.MyRepo 类型的属性上下文不可设置?
【发布时间】:2018-10-31 12:10:22
【问题描述】:

我正在创建一个 mvc 项目来学习存储库模式。我正在使用 DBFirst 方法 + 实体框架 + Unity 进行 DI。我正在关注这篇文章:

https://www.dotnetcurry.com/aspnet-mvc/1155/aspnet-mvc-repository-pattern-perform-database-operations

我已关注这篇文章,它运行良好。但之后我

在数据库Teacher中创建一个新表并更新数据库

后来我添加了 TeacherInfoRepository,在 unityconfig 文件中注册了 TeacherInfoRepository

添加控制器,然后添加视图

我按照上面提到的文章中的定义执行了上述步骤。 但是在我尝试运行 /Teachers/Index 视图之后它给出了错误:

The property context on type ProjectName.Repositories.TeacherInfoRepository is not settable.

我在谷歌上搜索,但不幸的是没有找到类似的东西。

请指导我。提前致谢。

【问题讨论】:

    标签: design-patterns dependency-injection asp.net-mvc-5 repository unity-container


    【解决方案1】:

    我检查了您在链接上提供的示例,以及 GitHub 上的源代码,但似乎在您的统一配置中缺少您声明的上下文属性的注入。

    这意味着在 UnityConfig.cs 文件中,在这一行之前:

    container.RegisterType<IRepository<EmployeeInfo,int>,EmployeeInfoRepository>();
    

    你应该这样写:

    container.RegisterType<ApplicationEntities>();
    

    这将允许当 unity 创建 EmployeeInfoRepository 的实例时,实例化访问数据库所需的上下文。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-11
      • 2013-07-16
      • 1970-01-01
      • 2018-08-02
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 2019-08-26
      相关资源
      最近更新 更多