Knockout.js 二进制谓词的左侧不能是文字表达式,它必须是有效的属性或函数谓词表达式:PropertyName

Knockout.js 二进制谓词的左侧不能是文字表达式,它必须是有效的属性或函数谓词表达式:PropertyName,knockout.js,breeze,Knockout.js,Breeze,我是新来的。我的spa应用程序使用breeze、Knockout、EF和MVC框架 我的POCO实体定义是 public partial class Tbl_GLB_Library { System.Guid ID { get; set; } public string FileName { get; set; } public string Extension { get; set; } public Nullable&l

我是新来的。我的spa应用程序使用breeze、Knockout、EF和MVC框架

我的POCO实体定义是

public partial class Tbl_GLB_Library
    {
        System.Guid ID { get; set; }
        public string FileName { get; set; }
        public string Extension { get; set; }
        public Nullable<long> Size { get; set; }
        public string Description { get; set; }
        public Nullable<System.DateTime> CreationTime { get; set; }
        public Nullable<System.DateTime> LastWriteTime { get; set; }
        public Nullable<System.DateTime> LastAccessTime { get; set; }
        public byte[] FileData { get; set; }
        public string FilePath { get; set; }
        public byte[] RowVersion { get; set; }
}
在获取元数据和一些数据之后,我需要查询缓存的数据

 query = breeze.EntityQuery.from("Tbl_GLB_Library").where(breeze.Predicate.create('FileContent', breeze.FilterQueryOp.Equals, null));

return Manager.executeQueryLocally(query);

此场景适用于所有映射的属性,但对于未映射的属性
FileContent
,引发了异常!如何解决此问题?

是否将NamingConvention设置为camelCase?如果谓词的左侧表达式的大小写错误,则会出现此错误消息。只要尝试将其更改为fileContent,您就会很快知道这是否是问题所在。

我使用的是PascalCase,而不是breeze的设置。默认情况下,NameConvention值为“NamingConvention.none”,表示“无更改”。
 query = breeze.EntityQuery.from("Tbl_GLB_Library").where(breeze.Predicate.create('FileContent', breeze.FilterQueryOp.Equals, null));

return Manager.executeQueryLocally(query);