BreezeJS自定义类型未正确映射

时间:2013-10-14 18:56:47

标签: asp.net-mvc breeze

这对我来说有点神秘。 我在客户端上定义了一个自定义类型:

var store = manager.metadataStore;
store.addEntityType({
            shortName: "ItemContainer",
            autoGeneratedKeyType: AutoGeneratedKeyType.Identity,
            dataProperties: {
                id: { dataType: DataType.Int32, isNullable: false, isPartOfKey: true },
                type: { dataType: DataType.Int32, isNullable: false },
                isViewed: { dataType: DataType.Boolean, isNullable: false },
                itemCount: { dataType: DataType.Int32, isNullable: false }
            }
        });

store.setEntityTypeForResourceName('Container', 'ItemContainer');

这就是从服务器传递的匿名类型(Fiddler):

[{"$id":"1","$type":"<>f__AnonymousType1`4[[System.Int32,mscorlib],
[System.Int32, mscorlib],
[System.Boolean, mscorlib],
[System.Int32, mscorlib]], XYZ",
"Id":43,"Type":1,"IsViewed":true,"ItemCount":19}]

当我通过微风查询检查客户端上返回的结果时,除itemCount外,所有数据都是正确的。生成类型的服务器代码如下所示:

var c = Items.GroupBy(x => new { x.Item.ItemTypeID, x.IsViewed })
                .Select(g => new { Id = ID, Type = g.Key.ItemTypeID, IsViewed = g.Key.IsViewed, ItemCount = g.Count() });

g.Count()(LINQ计数方法)似乎是罪魁祸首。如果我传递一个普通的整数,它就可以了。也许这个函数被懒惰地评估了,并且微风没有在正确的时间获得价值?

由于

0 个答案:

没有答案