私は 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」プロパティ。その文脈で何をすべきかわかりません。