在MVC 2中,我正在研究某些事情,并遇到了障碍。我得到了我的存储库,而不是将接口放在同一个类中,我有与EDMX文件相同的项目。
初始化StructureMap就是在这一点上杀了我的。这是我在初始化StructureMap的地方(在Global.asax.cs中。)
ObjectFactory.Initialize(x =>
{
x.ForRequestedType<IUnitOfWorkFactory>()
.TheDefaultIsConcreteType<EFUnitOfWorkFactory>()
.CacheBy(InstanceScope.HttpContext);
x.ForRequestedType(typeof(IRepository<>))
.CacheBy(InstanceScope.HttpContext)
.TheDefaultIsConcreteType(typeof(GenericRepository<>));
});
此项目的命名空间是GpdsCreationTaxidermy.Data(与我的GenericRepository.cs相同的命名空间)。我会发布这个文件的代码,但我不相信这是问题。在我的Global.asax中,我导入了适当的命名空间
using GodsCreationTaxidermy.Data;
我得到的错误是:
错误3类型或命名空间名称 找不到'GenericRepository' (你错过了使用指令或 汇编参考?)
还附有显示此特定项目布局的图像
有人可以帮助解决这个问题,或者我在这里做错了什么
编辑我甚至尝试将GodsCreationTaxidermy.Data添加到文件名中,但仍然没有运气。
答案 0 :(得分:1)
感谢您发送文件: - )
看起来GodsCreationTaxidermy.Data的定义已经改变。
这就是我为解决问题所做的工作:
从GodsCreationTaxidermy.Data.Repository类库中删除这些引用:
从GodsCreationTaxidermy.Data类库中删除这些引用:
删除GodsCreationTaxidermy MVC项目中对GodsCreationTaxidermy.Data的引用并重新添加引用,从Project选项卡中选择GodsCreationTaxidermy.Data
希望这会让GenericRepository工作: - )
我注意到以下行不再有效:
EFUnitOfWorkFactory.SetObjectContext(() => new GodsCreationTaxidermyEntities());
GodsCreationTaxidermyEntities似乎不再存在于GodsCreationTaxidermy.Data中。这会导致你出现问题吗?
答案 1 :(得分:0)
试试这个:
.TheDefaultIsConcreteType(typeof(GodsCreationTaxidermy.Data.GenericRepository<>));
可能删除&lt;&gt;在GenericRepository之后。是否将GodsCreationTaxidermy.Data作为参考添加到MVC网站?