Entity framework 我的存储库项目引用的项目中的IRepository使实际使用它们变得困难
我目前正在使用EF5在asp.NETMVC4中工作,我正在尝试使用Ninject进行依赖注入 我的解决方案中有4个不同的项目:Entity framework 我的存储库项目引用的项目中的IRepository使实际使用它们变得困难,entity-framework,repository,automapper,Entity Framework,Repository,Automapper,我目前正在使用EF5在asp.NETMVC4中工作,我正在尝试使用Ninject进行依赖注入 我的解决方案中有4个不同的项目: Gui->包含我的MVC项目 BusinessLogic->BusinessLogic DataAccess->my edmx文件和存储库(参考通用) 通用->模型、视图模型和IRepository 现在我试着写下: i推定: IQueryable<PictureSource> PictureSource { get; } IQuery
- Gui->包含我的MVC项目
- BusinessLogic->BusinessLogic
- DataAccess->my edmx文件和存储库(参考通用)
- 通用->模型、视图模型和IRepository
IQueryable<PictureSource> PictureSource { get; }
IQueryable<PictureSource> IRepository.PictureSource
{
get { return context.PictureSource }
}
public IQueryable<PictureSourceModel> PictureSource()
{
Mapper.CreateMap<List<PictureSource>, List<PictureSourceModel>>();
return Mapper.Map<List<PictureSource>,List<PictureSourceModel>>
(context.PictureSource.ToList());
}
IQueryable图片资源{get;}
存储库:
IQueryable<PictureSource> PictureSource { get; }
IQueryable<PictureSource> IRepository.PictureSource
{
get { return context.PictureSource }
}
public IQueryable<PictureSourceModel> PictureSource()
{
Mapper.CreateMap<List<PictureSource>, List<PictureSourceModel>>();
return Mapper.Map<List<PictureSource>,List<PictureSourceModel>>
(context.PictureSource.ToList());
}
IQueryable IRepository.PictureSource
{
获取{return context.PictureSource}
}
现在的问题是我不能在我的IRepository中调用PictureSource,因为它是来自我的EF的实体,它位于我的DataAccess中。我已尝试在我的存储库中以以下方式使用automapper:
IQueryable<PictureSource> PictureSource { get; }
IQueryable<PictureSource> IRepository.PictureSource
{
get { return context.PictureSource }
}
public IQueryable<PictureSourceModel> PictureSource()
{
Mapper.CreateMap<List<PictureSource>, List<PictureSourceModel>>();
return Mapper.Map<List<PictureSource>,List<PictureSourceModel>>
(context.PictureSource.ToList());
}
public IQueryable PictureSource()
{
CreateMap();
返回Mapper.Map
(context.PictureSource.ToList());
}
这会在dbSet中给出关于它的错误。
有什么提示吗?如果您无法从IRepository访问某些模型类,则您没有应用您的结构
PictureSourceModel
class和所有其他实体都应该在您的公共项目中。
然后“如预期”所有其他项目都可以访问这些类
<>为了能够将EF实体分离到另一个项目,您可以考虑使用VisualStudio扩展名为“<强> EF DbWordEngule<强”>
如果你需要更多的帮助,告诉我
顺便说一句:尽量不要在DAL中使用AutoMapper。它应该在Gui项目中使用
更新 将实体分离到POCO类
- 安装名为“Ef DbContext”的Visual Studio扩展 发电机”
- 打开edmx文件,在空白区域右键单击,然后选择“添加” “代码生成项”
- 从列表中选择“Ef DbContext生成器”
- 然后将新文件移动到另一个项目
- 之后,您应该打开.tt文件以更正.edmx文件路径