Breeze 由于使用了“expand”或“select”子句,因此存在多个实体类型。)

Breeze 由于使用了“expand”或“select”子句,因此存在多个实体类型。),breeze,Breeze,映射问题的根本原因涉及将资源名称映射到breeze保存在每个元数据存储中的实体类型。此映射可通过MetadataStore.getEntityTypeNameForResourceName和MetadataStore.setEntityTypeForResourceName方法获得。当使用实体框架元数据时,breeze假设实体框架“EntitySet”名称对应于“resourceNames”这一假设正是导致问题的原因。如果查询的“resourceName”与某个EntitySet名称不同,Bre

映射问题的根本原因涉及将资源名称映射到breeze保存在每个元数据存储中的实体类型。此映射可通过MetadataStore.getEntityTypeNameForResourceNameMetadataStore.setEntityTypeForResourceName方法获得。当使用实体框架元数据时,breeze假设实体框架“EntitySet”名称对应于“resourceNames”这一假设正是导致问题的原因。如果查询的“resourceName”与某个EntitySet名称不同,Breeze不知道相应的“实体类型”,只能推断查询中使用的数据类型,而不是使用“实体类型”元数据

有两个相当简单的修复方法,其中任何一个都有效

1) 使用MetadataStore.setEntityTypeForResourceName方法将资源名称映射到实体类型。请注意,可以将任意多个资源名称映射到同一实体类型


2) 将方法(对应于资源名称)命名为EF中定义的相应EntitySet的名称,而不是返回的类型的名称。一个常见的约定是EntitySet名称(因此资源名称)是复数的,而EntityType名称通常是单数的。i、 e.“Customers”是一个资源名称,“Customer”是EntityType

我今天试图重新编写这个名称。当我有更多信息时,我会重新发布。我今天正试图重新发布这一条。当我有更多信息时,我会重新发布。我今天(通过Nuget)将breeze更新为1.2.5版,但仍然收到此错误。模型列类为Nullable,但已与其他项目一起延迟。1.2.7和1.2.8中仍然存在此错误。相同的url会产生相同的错误。RockResolve,请确保查询操作名称与实体集名称匹配。感谢Jay的修复&花时间记录所有这些。不幸的是,它没有解决我的问题。请参阅1.2.8RockResolve之后的问题编辑:到目前为止,我无法重新编程。你能创建一个“简单”的应用程序来复制这个问题并通过电子邮件发送给我吗jayt@ideablade.com.I今天(通过Nuget)将breeze更新为1.2.5版,但我仍然收到此错误。模型列类为Nullable,但已与其他项目一起延迟。1.2.7和1.2.8中仍然存在此错误。相同的url会产生相同的错误。RockResolve,请确保查询操作名称与实体集名称匹配。感谢Jay的修复&花时间记录所有这些。不幸的是,它没有解决我的问题。请参阅1.2.8RockResolve之后的问题编辑:到目前为止,我无法重新编程。你能创建一个“简单”的应用程序来复制这个问题并通过电子邮件发送给我吗jayt@ideablade.com.
Unable to perform operation: leon types:System.Nullable`1[System.DateTimeOffset], System.DateTime
http://localhost:49800/api/Breeze Orders?$filter=LocalDateTime%20le%20datetime'2013-03-03T00%3A00%3A00.000Z'
<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
Unable to perform operation: leon types:System.Nullable`1[System.DateTimeOffset], System.DateTime
</ExceptionMessage>
<ExceptionType>System.Exception</ExceptionType>
<StackTrace>
at Breeze.WebApi.ParseTreeVisitor.CoerceTypes(String operatorName, Expression& leftExpr, Expression& rightExpr) at Breeze.WebApi.ParseTreeVisitor.VisitBinary(ParseTreeNode node, String operatorName, Expression leftExpr, Expression rightExpr) at Breeze.WebApi.ParseTreeVisitor.VisitNode(ParseTreeNode node) at Breeze.WebApi.ParseTreeVisitor.Parse(Type rootType, ParseTreeNode node) at Breeze.WebApi.ExpressionTreeBuilder.Parse(Type rootType, String source) at Breeze.WebApi.ODataActionFilter.BuildFilterFunc(String filterQueryString, Type elementType) at Breeze.WebApi.ODataActionFilter.OnActionExecuted(HttpActionExecutedContext actionExecutedContext) at System.Web.Http.Filters.ActionFilterAttribute.CallOnActionExecuted(HttpActionContext actionContext, HttpResponseMessage response, Exception exception) at System.Web.Http.Filters.ActionFilterAttribute.<>c__DisplayClass2.<System.Web.Http.Filters.IActionFilter.ExecuteActionFilterAsync>b__0(HttpResponseMessage response) at System.Threading.Tasks.TaskHelpersExtensions.<>c__DisplayClass41`2.<Then>b__40(Task`1 t) at System.Threading.Tasks.TaskHelpersExtensions.ThenImpl[TTask,TOuterResult](TTask task, Func`2 continuation, CancellationToken cancellationToken, Boolean runSynchronously)
</StackTrace>
</Error>
http://localhost:49800/api/Breeze/Orders?$filter=LocalDateTime%20ge%20datetimeoffset'2013-01-01T11%3A00%3A00.000Z'
Unable to perform operation: leon types:System.Nullable`1[System.DateTimeOffset], System.DateTimeOffset
public Nullable<System.DateTimeOffset> LocalDateTime { get; set; }
public System.DateTimeOffset LocalDateTime { get; set; }