本文介绍了微风 - 在服务器端创建实体的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在服务器端创建我的微风实体,而不是使用breeze entitymanager.createEntity,以便我可以设置实体的属性;我不想在客户端这样做。
I would like to create my breeze entity on the server side rather than using breeze entitymanager.createEntity, so that I can set properties of the entity; I don't want to do this on the client side.
服务器端api控制器:
SERVER SIDE api controller:
[HttpGet]
public Foo CreateFoo()
{
Foo f = new Foo()
{
PrimaryKey = Guid.NewGuid(),
SomeProperty = "XXX";
};
return f;
// return _contextProvider.Context.Users.Add(user); TRIED THIS TOO
}
[HttpGet]
public string Metadata()
{
return _contextProvider.Metadata();
}
客户端 -
var query = breeze.EntityQuery.from("CreateFoo");
manager.executeQuery(query).then(function(data) {
// returned entity has entityState "Unchanged" here
// this fixes, but is it correct? - YES per accepted answer's comments
data.results[0].entityAspect.entityState = breeze.EntityState.Added;
return data;
});
我尝试过这种方式,但是当我打电话时总是在服务器端发现并发异常SaveChanges。
I've tried this a number of ways but always get concurrency exceptions on the server side when I call SaveChanges.
我该怎么做?
推荐答案
,
- 您是否在客户端上拥有Foo类型的元数据。 (通过元数据端点或使用MetadataStore api在客户端上创建)
- 您在哪里为Foo实例分配主键?
- 您是否更新或至少设置Foo实例的并发字段(假设有)?
这篇关于微风 - 在服务器端创建实体的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!