2017-06-04 8 views
0

breeze jsを初めて使用しました。私のスパアプリは、breeze、Knockout、EF、そしてMVCフレームワークを使用しています。バイナリ述語の左辺はリテラル式ではありません。有効なプロパティまたは関数述語式でなければなりません。PropertyName

マイ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; } 
} 

ですが、私はカスタムコンストラクタを使用してマッピングされていないプロパティを追加します。

function addTbl_GLB_LibrariesProperties() { 
     var metadataStore = Manager.metadataStore; 
     metadataStore.registerEntityTypeCtor('Tbl_GLB_Library', null, Tbl_GLB_LibraryInit); 

     function Tbl_GLB_LibraryInit(Library) { 
      Library.FileContent = ko.observable(); 
     } 
    } 

メタデータといくつかのデータをフェッチした後、私は上のクエリを実行する必要がありますキャッシュされたデータ

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

return Manager.executeQueryLocally(query); 

このシナリオでは、すべてのマップされたプロパティのために動作しますが、マップされていない財産であるFileContent、ため、例外がスローされました!この問題をどうやって解決するのですか?

答えて

1

NamingConventionをcamelCaseに設定していますか?このエラーメッセージは、述語の左手表現が間違っている場合に表示されます。それをfileContentに変更しようとすると、それが問題かどうかをすぐに知ることができます。

+0

私はPascalCaseを使用していますが、breezeの設定は変更しません。デフォルトでは、NameConvention値は「変更なし」を意味する「NamingConvention.none」です。 –

関連する問題