天天看点

谁说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运行时”的作用,呵呵

继续阅读