我正在使用Breezejs和Entity Framework,我有一些实体,我使用NotMapped属性添加了一些非映射属性。在Web API和OData的最新更新之前,我能够对非映射属性进行投影,但自上次更新Web Api和OData以来,我收到了错误。
以下是更多详情。
假设我有一个包含属性OrderId,Total等的实体订单
对于这个实体,我添加了一个名为OrderDisplayName的非映射属性,并添加了数据注释属性[NotMapped]。
现在,在客户端,我通过执行此操作将此属性注册到Breeze
var type = store.getEntityType("Order");
if (type) {
var mappedOrderDisplayNameProperty = new breeze.DataProperty({
dataType: breeze.DataType.String,
defaultValue: null,
isNullable: true,
isPartOfKey: false,
maxLength: null,
name: "orderDisplayName",
nameOnServer: "OrderDisplayName"
});
type.dataProperties = Enumerable.from(type.dataProperties).where(function (up) {
return up.name != "orderDisplayName";
}).toArray();
type.dataProperties.push(mappedOrderDisplayNameProperty);
type.unmappedProperties = Enumerable.from(type.unmappedProperties).where(function (up) {
return up.name != "orderDisplayName";
}).toArray();
}
现在,我正在尝试使用像这样的Breezejs对几个属性进行投影
var query = breeze.EntityQuery.from("Orders").withParameters({ keys: keys}).select("OrderId, OrderDisplayName");
this.execeuteQueryAsync(query).then(function (promiseData) {
var mappings = promiseData.results;
});
我不断从BreezeQueryableAttribute的ValidateQuery方法中得到错误
在“订单”类型上找不到名为“OrderDisplayName”的属性。
在我对Odata和Web API(2)进行更新之前,这曾经工作正常。
有人可以让我知道我需要更改什么,或者这是否是更新的已知问题?
感谢。