天天看點

誰說LINQ複雜查詢不支援傳回實名類型~定義實體有講究

實體設計還是向以往一樣,有統一的接口進行規範,其次為了實作複雜表關聯查詢,将為LINQ表原生類型設計一個派生類

将它的導航字段(外延字段)設計在原對象裡,用_Extend結尾,為的是和LINQ自動生成的表關系字段相區分

<a href="http://images.cnblogs.com/cnblogs_com/lori/201201/20120112102611982.png"></a>

查詢時,通過類型的協變特性,使它傳回父類類型

<a href="http://images.cnblogs.com/cnblogs_com/lori/201201/201201121026137196.png"></a>

這時,對外傳回的類型還是LINQ原生對象,而它的派生類型在這裡隻是起到了“欺騙.NET運作時”的作用,呵呵

繼續閱讀