在我最初的 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;
}
从 Breeze 中放回这些数据的最简单方法是什么?
我看到我更改的数据在两个覆盖中都返回了
protected override bool BeforeSaveEntity(EntityInfo entityInfo)
{
}
protected override Dictionary<Type, List<EntityInfo>> BeforeSaveEntities(Dictionary<Type, List<EntityInfo>> saveMap)
{
}
但是没有简单的方法将这些推送到底层上下文中,即源自 Data.Services.Client.DataServiceContext 的 WCF 服务。
我怎么打电话
Context.UpdateChanges(EntityInfo);
或者
Context.UpdateChanges(SaveMap);
特别是考虑到 EntityInfo 和 SaveMap 包含 DTO?
我必须完全忽略 SaveChanges() 机制并进行自己的 CRUD 调用吗?我什至没有看到任何关于更新预测的好例子,这让我觉得这是根深蒂固的。
正如之前的帖子中所解释的,我可以改变这个项目的大部分内容。我唯一遇到的问题是数据库在另一台服务器上,并且有不能公开的列,我在表上的唯一方法是 EF5。
我选择使用 OData-v3 / WCF-Data-Services 对 EF 进行精简包装,并从 Web 服务器上的微风控制器访问它们。
到目前为止,阅读\查询\过滤和分页都在 SPA 上运行良好,但只有“C_UD”的 R,我更愿意重做这个项目。
亲切的问候迈克