我已經成功地通過創建自定義元數據定義並將其添加到breeze實體管理器來將微風連接到服務器上的自定義類型。使用Breeze無數據庫擴展屬性(NoDb)
但是,我無法請求一個已經在javascript中自定義定義的對象(Employee)並完全檢索它的關係。
換句話說,我有一個名爲Employee的對象,它有一個名爲「LoginStats」的屬性,它是服務器上的List類型。當請求只使用一個微風要素回報的集合在這個對象的時候應該有6
的$承諾看起來像這樣的結果:
data.results[0].loginStats()[0] //object
data.results[0].loginStats()[1] //undefined
奇怪的是,如果我單獨選擇屬性,例如.select(「LoginStats」),它會返回數組中的6個項目。
我怎樣才能檢索這個對象而不用拼出所有需要的屬性使用微風電話?我試圖使用.expand()子句,但不幸的是我們沒有以這種方式連接到EntityFramework。
在此先感謝!
編輯:Here's a sample of what it looks like當我使用「選擇」語句vs只是請求對象。這些圖片還演示了當我選擇所有屬性時會發生什麼,這是他們都正確填寫,但他們不再是可觀察的。 Eeeek!
控制器代碼:
[HttpGet]
public IQueryable<Employee> Get(string id)
{
var criterion = new Criterion<Employee, bool>(e => e.CustomerId == id);
var loginStatisticsExtendedProperty = new FillEmployeeLoginStatistics(_UserRoleProvider, _CustomerLoginStatsViewModelRepository);
var availableCompaniesForEmployess = new AvailableCompaniesForEmployess(_CompanyAffiliatesRepository);
return _EmployeeRepository.Find(criterion, loginStatisticsExtendedProperty, _EmployeeDetailsExtendedProperty, availableCompaniesForEmployess);
}
謝謝Jay。我已經更新了相冊(http://imgur.com/a/13158)以顯示我的控制器。這是黑色背景圖片。我已經將它作爲IQueryable返回,但與它們關聯的集合是否需要可查詢?他們目前是名單。 – letsgetsilly
與它們相關的集合不需要可查詢,但在您的情況下,確實需要確保這些集合與父級一起被序列化。看看來自服務器的json負載,看看這些集合是否會通過線路傳輸。同樣值得檢查的是,這些集合中的「實體」具有映射到您的客戶端實體類型之一的json $ type屬性(假設您正在使用BreezeController屬性)。 –
JSON是正確的。我直接請求URL時看到顯示這些集合。我添加了一個圖片到畫廊來說明。 – letsgetsilly