Met*_*haw 2 asp.net-mvc asp.net-web-api asp.net-spa breeze
我在我的ASP.NET WebAPI项目中使用Breeze,我添加了breezecontroller
[BreezeController]
public class BreezeController : ApiController
{
readonly EFContextProvider<MyEntities> _context
= new EFContextProvider<MyEntities>();
[HttpGet]
public string Metadata()
{
return _context.Metadata();
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我调用createEntity时,我得到错误 无法在没有先设置其键或将其entityType'AutoGeneratedKeyType'属性设置为'None'以外的其他内容的情况下将对象附加到EntityManager
当调用元数据api时,不是breeze自动初始化实体吗?
TIA
我打赌你正在尝试创建的实体被定义为客户端......而不是服务器......负责设置唯一密钥.我敢打赌,关键属性是Guid,因为EF Code First假设Guid关键属性由客户端默认确定.
如果是这样,那么在您将新实体添加到管理器之前,由您在创建实体时设置密钥.
您已选择使用该EntityManager.createEntity方法创建新实体.这也是我的最爱.
但你必须记住,该方法尝试新的实体自动添加到管理员为你(作为解释这里).因此,要使用此方法,必须在Breeze将其添加到管理器之前初始化新实体的密钥.您可以通过以下三种方式之一来实现:
createEntity调用的初始化参数中.选项#3看起来像这样:
var newThing = manager.createEntity("Thing", {id: breeze.core.getUuid()});
我会自己选择#1选项.
| 归档时间: |
|
| 查看次数: |
2685 次 |
| 最近记录: |