我們正在使用DTOs服務器端,並且已經使用流利api配置了一個dbcontext,以便輕鬆呈現所需的元數據。我們將1:1映射到我們的真實數據庫實體,並且每個DTO包含真實數據庫實體屬性的簡單子集。在Breeze中使用DTO時的高效查詢
這很好,但現在我需要找出一種方法來提高查詢的效率 - 即如果Breeze客戶端查詢單個項目,我不想在創建之前創建一整套DTO對象過濾。即我想找出一種方法來執行過濾器/對實際實體進行排序,但仍返回DTO對象。
我想我需要找出一種方法來攔截查詢執行,以查詢我的真實數據庫實體並返回一個DTO而不是實際的數據庫實體。
任何想法如何最好的方法呢?
「我想我需要找出一種方法來攔截查詢執行,以查詢我的真實數據庫實體並返回一個DTO而不是實際的數據庫實體。」我不明白你要做什麼 - 聽起來像你的服務器上你想要返回一個DTO而不是一個完整的實體 - 你試過在Breeze查詢中使用select語句嗎? –
我可以做到這一點(而且),但是當我將這些實體公開爲IQueryable屬性(使用在select中創建DTO的linq語句)時,會爲IQueryable可以過濾之前的每個實體創建一個DTO他們。即這裏的問題不是創建和填充DTO,而是能夠過濾而不必爲每個不匹配過濾器的實體創建DTO。 –
fubaar