删除数据sith Breeze.js而不将其加载到客户端

时间:2013-12-03 14:47:07

标签: entity-framework breeze

我正在使用带有Breeze.js后端的Entity Framework WebAPI,我需要删除未加载到客户端的大量数据。我真的很想在服务器上这样做而不加载它。

有“微风”吗?我的意思是BreezeController中的方法。

修改

我必须删除一个表中属于该用户的所有行,其日期字段是将来的,以及所有子行。

1 个答案:

答案 0 :(得分:1)

public override int SaveChanges()
    {
        foreach (
            var entry in
                this.ChangeTracker.Entries()
                    .Where((e => (e.State == (EntityState) Breeze.WebApi.EntityState.Deleted))))
        {
            if (entry.Entity.GetType() == typeof(User))
            {
                var entity = entry.Entity as User;
                var childEntitiesInFuture = ChildEntities.Where(c => c.DateField > DateTime.Now);
                foreach (var child in childEntitiesInFuture){
                  var grandchildrenForDeletion = Grandchildren.Where(c => c.ChildId == child.Id);
                  foreach (var g in grandchildrenForDeletion) Grandchildren.Remove(g);
                  ChildEntities.Remove(child);
                }
             }
         }
    }

假设您要删除UserUser中有一个ChildEntity保存了ChildEntitiesChildEntity,而Grandchild中有Grandchildren个{{1}}已保存在{{1}}中{1}}。有点杂乱的名字,但这就是你得到的没有真名:)

此方法进入Context类。祝你好运。