linq to DataSet 多表查询的问题

liuqiang_zh liuqiang_zh 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在“LinqPad” 中以下代码成功执行
from TsUp in Ts_UserPurviews
join TsM in Ts_Menus on TsUp.MenuID equals TsM.MenuID into TsMJoin
from TsMJoinT in TsMJoin.DefaultIfEmpty()
join TsU in Ts_Users on TsUp.UserID equals TsU.UserID into TsUJoin
from TsUJoinT in TsUJoin.DefaultIfEmpty()
select new
{
TsUp.UserID,
TsUp.MenuID,
TsUp.Purview,
TsUJoinT.UserName,
TsMJoinT.MenuPath,
TsMJoinT.SortID,
}

但在代码中写成如下
EnumerableRowCollection<DataRow> query =
from TsUp in Dt.AsEnumerable()
join TsM in DtM.AsEnumerable() on TsUp.Field<string>("MenuID") equals TsM.Field<string>("MenuID") into TsMJoin
from TsMJoinT in TsMJoin.DefaultIfEmpty()
join TsU in DtU.AsEnumerable() on TsUp.Field<string>("UserID") equals TsU.Field<string>("UserID") into TsUJoin
from TsUJoinT in TsUJoin.DefaultIfEmpty()
select new
{
UserID=TsUp.Field<string>("UserID"),
MenuID = TsUp.Field<string>("MenuID"),
Purview = TsUp.Field<string>("Purview"),
UserName = TsUJoinT.Field<string>("UserName"),
MenuPath = TsMJoinT.Field<string>("MenuPath"),
SortID = TsMJoinT.Field<string>("SortID"),
};

报“错误 3 无法将类型“System.Collections.Generic.IEnumerable<AnonymousType#1>”隐式转换为“System.Data.EnumerableRowCollection<System.Data.DataRow>”。存在一个显式转换(是否缺少强制转换?)”
错误

那位大佬告诉我 为什么出错 要怎么解决
...全文

相关推荐

精通LINQ程序设计

高级查询技巧**除了基本查询,书中还会涉及更高级的查询技巧,如嵌套查询、聚合函数(如`Sum`、`Average`、`Count`等)、多表连接以及自定义LINQ提供者。**10.

wentingChang

深入理解Linq:从Linq To Sql到Linq To DataSet

Linq(Language Integrated Query)是一种在.NET环境中集成查询功能的方式。它提供了一种类型安全、编译时检查的方法来操作数据源中的数据。Linq定义了一系列标准查询操作符,这些操作符可用于查询数组、数据库以及其他数据源。ORM(对象关系映射)框架是现代数据访问技术的核心,它将对象模型映射到关系数据库模型。Linq To Sql作为.NET平台下的ORM框架,简化了数据访问层的开发过程,允许开发者使用C#等.NET语言进行数据库查询,而无需编写传统的SQL语句。

呦呦Ruming

Visual Basic.NET数据库编程从入门到精通

,可以存储和操作多表数据)等关键组件。

ker79

Entity Framework 入门事例

**ADO.NET**:直接通过SQL命令或存储过程访问数据库,适用于复杂查询和高性能需求。3. **LINQ to SQL**:轻量级的ORM工具,适合小型项目和快速原型开发。4.

baogucqsj

C#相关的数据库高级教程资源内容

例如,`DataSet`是内存中的数据集,可以存储多表数据,并支持离线操作;`DataTable`代表单一的数据库表,可以进行CRUD操作;`DataAdapter`则用于在数据库和DataSet之间同步数据

dragon6060
评论 27
收藏 已收藏
分享
返回顶部
liuqiang_zh
LINQ 8,492 成员 4,736 内容