2017-02-15 39 views
0

我目前正在測試與Dynamics AX 7結合的oData客戶端。來自AX的元數據文件大於900'000行,如果我使用默認的oData客戶端並自動生成C#類文件,因爲太多的字符串文字(.net錯誤)而無法構建。o數據客戶端限制類

現在我正在尋找一種方法來告訴客戶端生成器生成哪些類(例如通過實體名稱)以及哪些不是(大約95%不需要在客戶端)。

令人遺憾地限制AX側的元數據不是一種選擇。

回答

1

我們有類似的問題,我們不得不修改ODATA服務中可用的$metadata信息。 在我們的例子中,我們使用DataServiceContext生成器,並指向原始服務器URI,但使用Fiddler作爲代理之間的代理。通過在Fiddler中使用斷點,我們可以將我們的修改後的$metadata xml提供給Visual Studio中的DataServiceContext生成器。當您謹慎使用並且API穩定時可正常工作。

+0

原來使用VS 2012,而不是2015年來到字符串文字錯誤與Visual Studio 2015年,現在按預期工作。 –

0

是的,使用VS2015可以解決你的「太多字符串」錯誤,但是如果打開生成的大文件或在調試時意外進入oData客戶端文件,Visual Studio 2015會崩潰。

爲了解決這個問題,我編輯了T4模板,它可以自動生成oData客戶端類,以便它們創建多個文件,因此您最終不會得到一個巨大的100萬行+文件。使用更新後的T4模板,它將生成相同的代碼,但每5MB將分割成一個新文件。

更新的T4模板可以在這裏找到: https://github.com/batetech/D365FO-oData-T4-MultiFile-Templates