Linq to DataSet 能否和 Linq to SQL 混合使用?
2010-01-28 16:05
323 查看
最近做项目的时候,遇到了一个问题。我主要是做一个Web Services给别人用的。别人传一个用户ID号过来,然后我将这个用户的所有好友的下载记录包装成一个DataSet返回去。 而根据用户ID号获取该用户的所有好友信息,则是通过另一个Web Services得到的,这里为FriendDS。
我原本的想法是:将这个FriendDS 与数据库级联查询,代码如下:
可是在调试的时候就会报错:不能在查询运算符(Contains() 运算符除外)的 LINQ to SQL 实现中使用本地序列
最后改成了:
第二种方式很容易理解,可是第一种方式为什么不行,我还是没有想明白,请大家指点。
我原本的想法是:将这个FriendDS 与数据库级联查询,代码如下:
var linq = from t1 in mycon.Templet_Down join t2 in mycon.Templet on t1.TempletID equals t2.TempletID join t3 in FriendDS.Tables[0].AsEnumerable() on t1.UserID equals t3.Field< System.Guid >("FriendID") select new { UserID = userID, FriendID = t3.Field< System.Guid >("FriendID"), FriendName = t3.Field < System.String >("FriendName"), TempletName = t2.TempletName, TempletID = t1.TempletID, DownloadTime = t1.DownloadTime };
可是在调试的时候就会报错:不能在查询运算符(Contains() 运算符除外)的 LINQ to SQL 实现中使用本地序列
最后改成了:
for (int i = 0; i < FriendDS.Tables[0].Rows.Count; i++) { var linq = from t1 in mycon.Templet_Down join t2 in mycon.Templet on t1.TempletID equals t2.TempletID where t1.UserID == new Guid(FriendDS.Tables[0].Rows[i]["FriendID"].ToString()) select new { UserID = userID, FriendID = new Guid(FriendDS.Tables[0].Rows[i]["FriendID"].ToString()), FriendName = FriendDS.Tables[0].Rows[i]["FriendName"].ToString(), TempletName = t2.TempletName, TempletID = t1.TempletID, DownloadTime = t1.DownloadTime }; }
第二种方式很容易理解,可是第一种方式为什么不行,我还是没有想明白,请大家指点。
相关文章推荐
- ASP.NET使用Linq to SQL实现基本的增、删、改、查及绑定控件
- 地磅称量系统之(17~23)使用LINQ to SQL Classes模板将数据表和存储过程映射成对象
- LINQ to SQL 中可以使用的LINQ函式
- LINQ To SQL 中查询语句的使用
- 在使用Linq to SQL并序列化一个数据对象的时候报System.InvalidOperationException异常,序列化类型XXX的对象时检测到循环引用。
- 在Linq to sql 和 Entity framework 中使用lambda表达式实现left join
- Linq To Sql常用方法使用总结
- 使用LINQ ToSql(第十七课)
- LINQ – 使用DataLoadOptions 提高LINQ to SQL 查询性能
- 使用LINQ to SQL 第一部分--ScottGu's Blog Posts--Using LINQ to SQL (Part 1)
- 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 4)
- LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据
- 在LINQ to SQL中使用Translate方法以及修改查询用SQL 推荐
- Linq To Sql 中使用lambda表达式实现Left Join
- 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载)
- LINQ to SQL系列三 使用DeferredLoadingEnabled,DataLoadOption指定加载选项
- 在LINQ to SQL中使用Translate方法以及修改查询用SQL (转)
- 一起谈.NET技术,使用LINQ to SQL更新数据库(上):问题重重
- LINQ to SQL 查询数据库和使用存储过程
- Linq To Sql常用方法使用总结