0

私は Breeze を初めて使用し、Breeze Angular と WebApi を使用してサンプル アプリケーションを構築しようとしています。新しく追加されたオブジェクトSaveResultでローカル Array (Angular) を更新する必要がある問題に直面しています。サーバーコード

    [HttpPost]
    public SaveResult SaveChanges(JObject saveBundle)
    {
        return  context.SaveChanges(saveBundle);
    }

クライアントコード

$scope.AddNewProduct = function () {
       if ($scope.Product !== null) {
        datacontext.addNew($scope.Product, function (newProduct) {
            $scope.Products.unshift(newProduct);
            $scope.$apply();
        });
    }
};

動いていない。空の値で UI を更新する

ブリーズ デモ アプリケーションごとに、WebApi に 3 つのメソッドがあります。

namespace AngularWebApi.ApiControllers
{
[BreezeController]
public class ProductsBreezeController : ApiController
{
    private readonly ProductRepository context;

    public ProductsBreezeController()
    {
        context = new ProductRepository();
    }

    [HttpGet]
    public string Metadata()
    {
        return context.Metadata();
    }

    //// GET api/productsbreeze
    [HttpGet]
    public IQueryable<Product> GetAllProducts()
    {
        return context.TodoLists;
    }

    [HttpPost]
    public SaveResult SaveChanges(JObject saveBundle)
    {
        return  context.SaveChanges(saveBundle);
    }
}

public class ProductRepository : EFContextProvider<SampleEntities>
{
    public DbQuery<Product> TodoLists
    {
        get { return Context.Products; }
    }
}

}

GetAllProductsはこれを単一のエンティティとして返すようになりまし

$$hashKey: "004"
_backingStore: Object
entityAspect: ctor
maxUnits: (...)
productId: (...)
productName: (...)
__proto__: Object

ただし、SaveChanges メソッドは戻ります

_backingStore: Object
entityAspect: ctor
maxUnits: (...)
productId: (...)
productName: (...)
__proto__: Object

$$ hashKeyがありません: SaveChanges メソッドの「004」プロパティ。その文脈で何をすべきかわかりません。

4

0 に答える 0