Asp.net web api Breeze Web API往返问题
嗨,我正试图让Breeze创建一个元数据存储,但是消息失败了Asp.net web api Breeze Web API往返问题,asp.net-web-api,breeze,Asp.net Web Api,Breeze,嗨,我正试图让Breeze创建一个元数据存储,但是消息失败了 NamingConvention此服务器属性名称不能正确往返 我使用开箱即用的Web API实现了相同的自引用循环,并且能够解决这个问题 json.SerializerSettings.ReferenceLoopHandling=Newtonsoft.json.ReferenceLoopHandling.Ignore 任何帮助或解决方案都将不胜感激 谢谢我在使用两个管理器时遇到了同样的问题。我发现如果你使用的是全球 breeze.Na
NamingConvention此服务器属性名称不能正确往返
我使用开箱即用的Web API实现了相同的自引用循环,并且能够解决这个问题
json.SerializerSettings.ReferenceLoopHandling=Newtonsoft.json.ReferenceLoopHandling.Ignore
任何帮助或解决方案都将不胜感激
谢谢我在使用两个管理器时遇到了同样的问题。我发现如果你使用的是全球
breeze.NamingConvention.{whateverYouUse}.setAsDefault();
需要在创建管理器之前进行设置。此外,如果您在服务器上将json序列化强制为特定的命名约定,那么客户端上的命名约定应该匹配。我正在使用breezecontext,只要它在管理器之前的设置按计划工作……也许您不需要服务器端设置?好的,所以我解决了我自己的问题。我的表名都是以小写字母开头的,所以当我遇到往返错误时,这是因为它会看到一个实体,比如refLookup,Breeze将其视为refLookup,但也引用了一个实体作为refLookup(没有驼峰大小写,因为这是实体的名称)。所以我只是用大写字符命名数据库中的所有表。希望这对将来的人有所帮助。微风
NamingConvention
设施支持属性别名,而不是实体类型名称别名。因此,实体类型名称的拼写必须与服务器端类型名称完全匹配。。。即使您选择NamingConvention或创建自己的自定义NamingConvention
插件
这就是为什么我很惊讶您在使用表/实体类名时遇到了任何困难
我无法重现这个错误。这是我试过的
- 将“foo”表添加到我的数据库中
- 创建了相应的
类foo
- 从Web API控制器将其作为
查询操作方法公开foos
- 在Breeze客户端上查询所有
foos
foo
实体时没有遇到问题
请注意,我没有试图在客户机上破坏NamingConvention
。我保留了默认值。。。也就是说,每个客户端实体属性名称都与其对应的服务器属性名称相同。正如我所说的,NamingConvention
与实体类型名称没有任何关系,元数据中没有表示服务器和客户端实体类型名称之间的差异
你不这么认为吗?你能提供样品吗
强烈警告:不要更改Json.NET属性命名约定。所有名称别名必须由Breeze在客户端上完成
通常,如果
[BreezeController]
属性设置了Json.NET配置设置,则不应更改该设置。我能想到的唯一例外是空值处理;Breeze告诉Json.NET忽略空值。我认为这是一个错误。。。如果愿意,您可以告诉Json.NET发送空值。这是我的完美解决方案。还有一件事,breeze希望所有列名都以大写开头。。我试着把我所有的栏目一个接一个地改成大写。