谁说LINQ复杂查询不支持返回实名类型~定义实体有讲究

实体设计还是向以往一样,有统一的接口进行规范,其次为了实现复杂表关联查询,将为LINQ表原生类型设计一个派生类

将它的导航字段(外延字段)设计在原对象里,用_Extend结尾,为的是和LINQ自动生成的表关系字段相区分

image

查询时,通过类型的协变特性,使它返回父类类型

image

这时,对外返回的类型还是LINQ原生对象,而它的派生类型在这里只是起到了“欺骗.NET运行时”的作用,呵呵

原文地址:https://www.cnblogs.com/lori/p/2320222.html