linq 左连接问题

放羊娃儿 2014-09-10 09:27:41
var query = from g in wfEntities.prepay
join p in wfEntities.project on g.ProjectCode equals p.Code
join u in wfEntities.userinfo on g.PrepayUser equals u.ID
join h in wfEntities.userinfo on g.HandlerUserId equals h.ID into ght
from gh in ght.DefaultIfEmpty()
select new PrepayInfoDTO
{
Id = g.Id,
Amount = g.Amount,
PrepayCode = g.PrepayCode,
PrepayDate = g.PrepayDate,
PrepayUser = g.PrepayUser,
PrepayUserName = u.FullName,
HandlerUserId = gh == null ? 0 : gh.ID,
HandlerUserName = gh == null ? "" : gh.FullName,
ProjectCode = g.ProjectCode,
ProjectName = p.Name,
UseNotes = g.UseNotes,
DataState = g.DataState
};
这样子出现了“LINQ to Entities 不识别方法“System.Collections.Generic.IEnumerable”这样的问题?有人知道吗?
...全文
129 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
放羊娃儿 2014-09-10
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
select PrepayInfoDTO 这个要删除,返回匿名类型
跟这个无关,我试了,还是一样出错
moonwrite 2014-09-10
  • 打赏
  • 举报
回复
using System.Collections.Generic; using System.Linq; using System.Data.Entity; 还有添加EntityFramework.dll了么
threenewbee 2014-09-10
  • 打赏
  • 举报
回复
select PrepayInfoDTO 这个要删除,返回匿名类型
Lancc1314 2014-09-10
  • 打赏
  • 举报
回复
太复杂了,没写过怎么繁琐的linq
LINQ to SQL语句(1)之Where 2 Where操作 2 1.简单形式: 2 2.关系条件形式: 2 3.First()形式: 3 LINQ to SQL语句(2)之Select/Distinct 3 1.简单用法: 4 2.匿名类型 形式: 4 3.条件形式: 5 4.指定类 型形式: 6 5.筛选形式: 6 6.shaped形式(整形类型): 6 7.嵌套类型形式: 7 8.本地方法调用 形式(LocalMethodCall): 7 9.Distinct形式: 8 LINQ to SQL语句(3)之Count/Sum/Min/Max/Avg 9 1.简单形式: 9 2.带条件形 式: 9 1.简单形式: 10 2.映射形式: 10 3.元素 : 11 1.简单形式: 11 2.映射形式: 11 3.元素: 11 1.简单形式: 12 2.映射形式: 12 3.元素: 12 LINQ to SQL语句(4)之Join 13 Join操作符 13 1.一对多关系(1 to Many): 13 2.多对多关系(Many to Many): 14 3.自联接关系: 15 1.双向联接(Two way join): 15 2.三向联接(There way join): 16 3.左外部联接(Left Outer Join): 17 4.投影的Let赋值(Projected let assignment): 17 5.组合键(Composite Key): 18 6.可为null/不可为null的键关系 (Nullable/Nonnullable Key Relationship): 19 LINQ to SQL语句(5)之Order By 19 Order By操作 19 1.简单形式 19 2.带条件形式 20 3.降序排序 20 4.ThenBy 20 5.ThenByDescending 22 6. 带GroupBy形式 22 LINQ to SQL语句(6)之Group By/Having 23 Group By/Having操作符 23 1.简单形式: 23 2.Select匿名类 : 24 3.最大 值 25 4.最小 值 26 5.平均 值 26 6.求和 26 7.计数 27 8.带条件计数 27 9.Where限制 28 10.多列(Multiple Columns) 28 11.表达式(Expression) 29 LINQ to SQL语句(7)之Exists/In/Any/All/Contains 29 Exists/In/Any/All/Contains操作符 29 Any 29 1.简单形式: 29 2.带条件形式: 30 All 30 Contains 31 1.包含一个对象: 31 2.包含多个值: 32 LINQ to SQL语句(8)之Concat/Union/Intersect/Except 32 Concat/Union/Intersect/Except操作 32 Concat(连接) 32 1.简单形式: 33 2.复 合形式: 33 Union(合并) 33 Intersect(相交) 34 Except(与非) 34 LINQ to SQL语句(9)之Top/Bottom和Paging和SqlMethods 35 Top/Bottom操作 35 Take 35 Skip 35 TakeWhile 36 SkipWhile 36 Paging(分页)操作 36 1.索引 36 2.按唯一键排序 36 SqlMethods操作 37 Like 37 已编译查 询操作(Compiled Query) 38 LINQ to SQL语句(10)之Insert 38 插入(Insert)1.简单形式 38 2.一对多 关系 39 3.多对多关系 39 4.使用动态CUD重写(Override using Dynamic CUD) 40 LINQ to SQL语句(11)之Update 41 更新(Update) 41 1.简单形式 41 2.多项更改 41 LINQ to SQL语句(12)之Delete和使用Attach 42 删除(Delete)1.简单形式 42 2.一对多关系 42 3.推理删除(Inferred Delete) 43 使用Attach更新(Update with Attach) 43 LINQ to SQL语句(13)之开放式并发控制和事务 46 Simultaneous Changes开放式并发控制 46 开放式并发(Optimistic Concurrency) 46 1.Implicit(隐式) 48 2.Explicit(显式) 48 LINQ to SQL语句(14)之Null语义和DateTime 49 Null语义 49 1.Null 49 2.Nullable.HasValue 50 日期函数 50 1.DateTime.Year 51 2.DateTime.Month 51 3.DateTime.Day 51 LINQ to SQL语句(15)之String 51 字符串(String) 51 1.字符 串串联(String Concatenation) 52 2.String.Length 52 3.String.Contains(substring) 52 4.String.IndexOf(substring) 52 5.String.StartsWith (prefix) 53 6.String.EndsWith(suffix) 53 7.String.Substring(start) 53 8.String.Substring (start, length) 53 9.String.ToUpper() 54 10.String.ToLower() 54 11.String.Trim() 54 12.String.Insert(pos, str) 54 13.String.Remove(start) 55 14.String.Remove(start, length) 55 15.String.Replace(find, replace) 55 LINQ to SQL语句(16)之对象标识 56 对象标识 56 对象缓存 56 LINQ to SQL语句(17)之对象加载 57 对象加载延迟加载 57 预先加载:LoadWith 方法 58 LINQ to SQL语句(18)之运算符转换 59 1.AsEnumerable:将类型转换为泛型 IEnumerable 59 2.ToArray:将序列转换为数组 59 3.ToList:将序列转换为 泛型列表 59 4.ToDictionary:将序 列转化为字典 60 LINQ to SQL语句(19)之ADO.NET与LINQ to SQL 60 1.连接 61 2.事务 61 LINQ to SQL语句(20)之存储过程 63 1.标量返回 63 2.单一结 果集 64 3.多个可 能形状的单一结果集 65 4.多个结果集 70 5.带输出参数 79 LINQ to SQL语句(21)之用户定义函数 80 1.在Select中使用用户定义的标量函数 80 2.在Where从句中 使用用户定义的标量函数 81 3.使用用户定义的表值函数 83 4.以联接方式使用用户定义的表值函数 84 LINQ to SQL语句(22)之DataContext 85 创建和删除数据库 85 数据库验证 88 数据库更改 88 动态查询 89 日志 90 LINQ to SQL语句(23)之动态查询 90 1.Select 91 2.Where 92 LINQ to SQL语句(24)之视图 94 LINQ to SQL语句(25)之继承 96 1.一般形式 97 2.OfType形式 98 3.IS形式 98 4.AS形式 99 5.Cast形式 99 6.UseAsDefault形式 100 7.插入新的记录 101
关于EF6的正式书籍很少,这个文章是国内翻译整理出来的,共46个小节。适合循序渐进的学习。 第1部分 开始使用实体框架之历史和框架简述 第2部分 开始使用实体框架之使用介绍 第3部分 实体数据建模基础之创建一个简单的模型 第4部分 实体数据建模基础之从已存在的数据库创建模型 第5部分 实体数据建模基础之有载荷和无载荷的多对多关系建模 第6部分 实体数据建模基础之使用Code First建模自引用关系 第7部分 实体数据建模基础之拆分实体到多表以及拆分表到多实体 第8部分 实体数据建模基础之继承关系映射TPT 第9部分 实体数据建模基础之继承关系映射TPH 第10部分 实体数据建模基础之两实体间Is-a和Has-a关系建模、嵌入值映射 第11部分 查询之异步查询 第12部分 查询之使用SQL语句 第13部分 查询之使用Entity SQL 第14部分 查询之查询中设置默认值和存储过程返回多结果集 第15部分 查询之与列表值比较和过滤关联实体 第16部分 查询之左连接和在TPH中通过派生类排序 第17部分 查询之分页、过滤和使用DateTime中的日期部分分组 第18部分 查询之结果集扁平化和多属性分组 第19部分 查询之使用位操作和多属性连接(join) 第20部分 ASP.NET MVC中使用实体框架之在MVC中构建一个CRUD示例 第21部分 ASP.NET MVC中使用实体框架之在页面中创建查询和使用ASP.NET URL路由过虑 第22部分 加载实体和导航属性之延迟加载 第23部分 加载实体和导航属性之预先加载与Find()方法 第24部分 加载实体和导航属性之查询内存对象 第25部分 加载实体和导航属性之加载完整的对象图和派生类型上的导航属性 第26部分 加载实体和导航属性之延缓加载关联实体和在别的LINQ查询操作中使用Include()方法 第27部分 加载实体和导航属性之关联实体过滤、排序、执行聚合操作 第28部分 加载实体和导航属性之测试实体是否加载与显式加载关联实体 第29部分 加载实体和导航属性之过滤预先加载的实体集合和修改外键关联 第30部分 继承与建模高级应用之多对多关联 第31部分 继承与建模高级应用之自引用关联 第32部分 继承与建模高级应用之TPH与TPT (1) 第33部分 继承与建模高级应用之TPH与TPT (2) 第34部分 继承与建模高级应用之多条件与QueryView 第35部分 继承与建模高级应用之TPH继承映射中使用复合条件 第36部分 继承与建模高级应用之TPC继承映射 第37部分 继承与建模高级应用之独立关联与外键关联 第38部分 使用对象服务之动态创建连接字符串和从数据库读取模型 第39部分 使用对象服务之配置模型和使用单复数服务 第40部分 使用对象服务之从跟踪器中获取实体与从命令行生成模型(想解决EF第一次查询慢的,请阅读) 第41部分 使用对象服务之标识关系中使用依赖实体与异步查询保存 第42部分 POCO之使用POCO 第43部分 POCO之使用POCO加载实体 第44部分 POCO之POCO中使用值对象和对象变更通知 第45部分 POCO之获取原始对象与手工同步对象图和变化跟踪器 第46部分 POCO之领域对象测试和仓储测试

62,052

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧