无法设置ProjectName.Repositories.MyRepo类型的属性上下文?

时间:2018-10-31 12:10:22

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

我正在创建一个mvc项目来学习存储库模式。我正在使用DBFirst方法+实体框架+ Unity for 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.

我在Google上进行了搜索,但不幸的是找不到这样的东西。

请指导我。预先感谢。

1 个答案:

答案 0 :(得分:0)

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

这意味着在文件UnityConfig.cs的此行之前:

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

您应该输入以下内容:

container.RegisterType<ApplicationEntities>();

这将允许在统一创建EmployeeInfoRepository实例时实例化访问数据库所需的上下文。