关于使用IDbSet和DbSet的好处,我已经阅读了这个thread。问题是,当我的上下文类实现IDbSet时,我无法创建控制器,因为我收到错误消息
"There was an error generating 'MyProject.MyNamespace.MyContext'. Try rebuilding your project."
当我改回来时,我可以创建控制器。我认为他是因为我无法实例化一个接口。
如何在实现IDbSet时创建控制器?我必须修改我的上下文类和上下文接口才能使用DbSet,添加新控制器,然后每次添加新控制器时都更改回IDbSet吗?随着我的项目的发展,这似乎是一场噩梦。
感谢。
public interface ICMSContext
{
IDbSet<AcademicYear> AcademicYears { get; }
IDbSet<Agency> Agencies { get; }
IDbSet<Award> Awards { get; }
IDbSet<Building> Buildings { get; }
IDbSet<Campus> Campuses { get; }
...More like this
}
public interface CMSContext : DbContext, ICMSContext
{
IDbSet<AcademicYear> AcademicYears { get; set}
IDbSet<Agency> Agencies { get; set}
IDbSet<Award> Awards { get; set}
IDbSet<Building> Buildings { get; set}
IDbSet<Campus> Campuses { get; set}
...More like this
}
不,我没有使用依赖注入。我很擅长使用实体框架和MVC(大约两个月)。我已经看过使用ninject的教程,但我不确定如何使用DI来解决这个问题,因为它仍然会使用我的CMSContext类。
感谢。