0
在NoDB example之後,我更改了現有的WebAPI控制器以使用Breeze.WebApi2.BreezeController
註釋。這改變了從很簡單的東西JSON結果:如何禁止BreezeController添加的額外屬性?
[{"Name":"Thing1","Description":"Description of Thing 1"},
{"Name":"Thing2","Description":"Another description"}]
要的東西有點更加複雜和消耗帶寬的:
[{"$id":"1","$type":"MyCompany.MyProduct.Models.ContentType, MyCompany.MyProduct","Name":"Thing1","Description":"Description of Thing 1"},
{"$id":"2","$type":"MyCompany.MyProduct.Models.ContentType, MyCompany.MyProduct","Name":"Thing2","Description":"Another description"}]
而且隨着this previous question所描述的,額外的信息實際上並沒有提供元數據給客戶。我仍然必須手動定義。
鑑於上述情況,有兩個問題:
- 什麼用途的額外的信息服務,如果我還是要在客戶端上定義元數據?
- 有沒有辦法抑制額外的屬性?
所以只需添加BreezeController註解,它就改變了響應的序列化方法?如果breeze客戶端使用$ type,爲什麼我還需要在客戶端上手動定義元數據? – explunit
元數據不僅僅是名稱,它是關於每個屬性的數據類型的數據,實體類型之間的關係等等。 $ type只是讓breeze客戶端將序列化的json連接到所有這些其他元數據。除非要麼從服務器發送(默認),要麼在客戶端的代碼中創建,否則這些元數據本身不會在客戶端上可用。 –
$ type不代表什麼,除非客戶端知道$ type **是什麼** - 它有哪些字段,每個字段的數據類型和驗證規則是什麼,它的主鍵是什麼,它的關係是什麼其他類型。所有這些都是在元數據中定義的。 –