ASP.NET Web API返回可查询的DTO?
发布时间:2020-05-22 17:16:35 所属栏目:asp.Net 来源:互联网
导读:我使用ASP.NET Web API构建了一个不错的API,但是我猜想从我的上下文(实体框架)AsQueryable返回实体是不对的,所以我将所有内容映射到DTO对象. 我还不太明白,我如何保持我的上下文可以查询,但仍然只返回DTO而不是实体?还是这不可能? 这是我的代码: public IQ
|
我使用ASP.NET Web API构建了一个不错的API,但是我猜想从我的上下文(实体框架)AsQueryable返回实体是不对的,所以我将所有内容映射到DTO对象. 我还不太明白,我如何保持我的上下文可以查询,但仍然只返回DTO而不是实体?还是这不可能? 这是我的代码: public IQueryable<ItemDto> Get()
{
using (EfContext context = new EfContext())
{
Mapper.CreateMap<Item,ItemDto>()
.ForMember(itemDto => itemDto.Category,mce => mce.MapFrom(item => item.Category.Name));
IEnumerable<ItemDto> data = Mapper.Map<IEnumerable<Item>,IEnumerable<ItemDto>>(context.Items
.OrderByDescending(x => x.PubDate)
.Take(20));
return data.AsQueryable();
}
}
正如你可以看到我加载数据,并使这个小的IEnumerable集合可查询.问题是,为这段代码生成的查询可能是非常低效的,因为它首先加载所有项目(或至少20个第一个项目),然后过滤输出. 我希望我描述我的问题尽可能好,这有点难以解释.我在Google上找不到任何内容. 解决方法不要先选择内存中的所有内容.做这样的事情:public IQueryable<ItemDto> Get()
{
using (EfContext context = new EfContext())
{
var query = from item in context.Items
select Mapper.Map<Item,ItemDto>(item)
return query.OrderByDescending(x => x.PubDate).Take(20));
}
}
BTW以下代码是您想要执行的操作,例如在静态构造函数或WebApiConfig.cs文件中. Mapper.CreateMap<Item,ItemDto>()
.ForMember(itemDto => itemDto.Category,mce => mce.MapFrom(item => item.Category.Name)); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 通过ASP .Net成员身份进行用户登录
- .net – 如何动态清除用户控件中的所有控件?
- asp.net-mvc-5 – 在默认的MVC5应用程序的帐户关联步骤中,从
- Asp.net从Https重定向到Http
- ASP.NET:文字属性中的单引号和双引号
- asp.net – 从一个区域的操作重定向到“根”区域中的操作?
- asp.net-mvc-5.1 – 如何在EnumDropDownListFor中设置所选值
- asp.net-mvc – 2010初学者指南流利的nHibernate
- asp.net-mvc – 如何使用Wix在IIS 7上安装ASP.Net MVC应用程
- asp.net-mvc-4 – ViewModels或ViewBag?
推荐文章
站长推荐
- asp.net – 如何使用带有TemplateFields的Object
- .net – 通过互联网向YH收取的最简单的方法是什么
- asp.net-mvc-3 – mvc3 OutputCache RemoveOutpu
- asp.net-mvc – WebForms和MVC可以存在于一个项目
- asp.net-mvc-3 – 在部署服务器中编辑ASP.NET MV
- asp.net – Chrome浏览器不显示HTTP处理程序生成
- asp.net-mvc-3 – ASP.MVC 3 Razor在Html.Partia
- asp.net – 在没有完全回发的情况下,在AJAX更新面
- 学习Asp.Net WebForms或Asp.Net MVC
- asp.net – 使用sql server的Web应用程序中的审计
热点阅读
