继续在我最初的WebAPI过滤后和分页投影困境微风的WebAPI更新预测
我现在想更新我的收效甚微后端数据库。
给予我是事实:
public IQueryable<ConsigneDTO> Consignees(string refname)
{
IQueryable<ConsigneDTO> q = this.db.Consignes
.Where(x => x.Refname == refname)
.Select(f => new ConsigneDTO {Refname = f.Refname, Consignee = f.Consignee, Address1 = f.Address1, Address2 = f.Address2, Address3 = f.Address3});
return q;
}
请告诉我最简单的方法来把这个数据从回来微风?
我看到我的改变的数据回来两个覆盖
protected override bool BeforeSaveEntity(EntityInfo entityInfo)
{
}
protected override Dictionary<Type, List<EntityInfo>> BeforeSaveEntities(Dictionary<Type, List<EntityInfo>> saveMap)
{
}
但没有简单的方法推到这些底层的背景下这是一个WCF服务从Data.Services.Client.DataServiceContext而产生。
我怎么叫
Context.UpdateChanges(EntityInfo);
或
Context.UpdateChanges(SaveMap);
尤其是考虑EntityInfo和SaveMap包含DTO?
我必须完全忽略SaveChanges()机制并执行我自己的CRUD调用吗?我甚至没有看到有关更新预测的非微风的例子,这让我觉得这是根深蒂固的。
正如之前的帖子所解释的,我可以改变这个项目的大部分内容。我唯一遇到的问题是数据库在另一台服务器上,并且有不能公开的列,我在表中的唯一方法是EF5。
我已经选择使用OData-v3/WCF-Data-Services精简打包EF,并从Web服务器上的breeze控制器访问它们。
到目前为止,阅读\查询\过滤和分页对于SPA来说都很有效,但只有“C_UD”的R,我更愿意重写这个项目。
亲切的问候 迈克
我将尽力与你保持一致 - 你说你有一个WCF服务,你从中获得数据 - 你在这里做什么?您是否试图将数据发回GET方法?我希望不是......如果你正试图将数据保存到WCF服务中,你有没有UPDATE或POST方法?你有没有尝试拦截保存并使用这些方法?如果您使用WCF服务并希望Breeze能够通过发布数据来覆盖GET方法,那么我觉得您需要对WCF服务进行更多的研究。请理解我与Breeze团队无关...... –
@PWKad欣赏努力:)我熟悉WCF(但始终在学习),我可以用我的控制器从数据服务器获取.Select() ; q.Address3 = “foo” 的; Context.UpdateObject(Q); Context.SaveChanges;我的问题是更微风相关。 Breeze将BeforeSaveEntity中的EntityInfo类或其他覆盖中的SaveMap和SaveBundle返回给我。这些似乎都不能传递给UpdateObject(),即使我可以,由于Select()投影,它是一个DTO,我不认为WCF会知道如何处理它。我将去除投影作为测试并克服微风障碍。 – Mike
我已经更新了最初的问题,以更多地指出Breeze覆盖和DTO - 再次感谢 – Mike