浅析Linq链接

开发 后端
好多开发人员都感觉Linq连接不是很实用,笔者倒不这样认为,笔者认为在做Linq连接时只要注意了一些问题,Linq连接还是可以实现的,笔者先写了一段Linq连接的代码,还有介绍了Linq连接的注意事项。

好多开发人员都感觉Linq连接不是很实用,笔者倒不这样认为,笔者认为在做Linq连接时只要注意了一些问题,Linq连接还是可以实现的,笔者先写了一段Linq连接的代码,还有介绍了Linq连接的注意事项。以下是一段Linq连接的代码(Group By)。

  1. SELECT p.ParentId, COUNT(c.ChildId)FROM ParentTable p  LEFT OUTER JOIN ChildTable c 
  2. ON p.ParentId = c.ChildParentIdGROUP BY p.ParentId  

转换成Linq连接:

  1. (from p in context.ParentTable   
  2. join c in context.ChildTable   
  3. on p.ParentId equals c.ChildParentId into j1   
  4. from j2 in j1.DefaultIfEmpty()   
  5. select new {   
  6. ParentId = p.ParentId,  
  7. ChildId = j2==null? 0 : 1   
  8. })  
  9. .GroupBy(o=>o.ParentId)   
  10. .Select(o=>new { ParentId = o.key, Count = o.Sum(p=>p.ChildId) }) 

当使用连接字符Linq连接本地数据库时,使用string connectionString = "Server=localhost;uid=sa;pwd=sa;database=DataBase;Integrated Security=SSPI"测试正常,但连接远程数据库会抛出“未与信任 SQL Server 连接相关联”错误。应更改连接字符串为:“Data Source=192.168.4.23;Initial Catalog=DataBase;Persist Security Info=True;User ID=sa;Password=sa”测试通过。
主要原因在于:

(1)用户名称 uid=>User ID;
(2)密码 pwd=>Password

在使用ADO.Net进行数据Linq连接时,在字符串格式上,要求不是十分严格,而使用Linq进行数据库访问,则要求更严格一些。
顺便解释下连接字符串属性含义:

关于Linq连接主要介绍如下两个属性:

Persist Security Info属性的意思是表示是否保存安全信息,其实可以简单的理解为"ADO.Net在数据库连接成功后是否保存密码信息",True表示保存,False表示不保存。默认为False.
Integrated Security属性的意思是表示是否使用Windows身份认证,Integrated Security = Ture使用windows身份认证,但是,只有当Integrated Security = SSPI将适用于OleDb .NET Framework 数据提供程序。为 ConnectionString 设置 Integrated Security=true 将引发异常。

以上就是笔者为你介绍的Linq连接方法及注意问题。

【编辑推荐】

  1. LINQ动态查询的实现浅析
  2. LINQ TO SQL动态修改表名称的实现浅析
  3. LINQ To SQL的一点讨论
  4. 浅析LINQ事务处理的实现
  5. 浅析DataSet和DataTable
责任编辑:阡陌 来源: 博客园
相关推荐

2009-09-17 13:30:32

LINQ to XML

2009-09-15 13:30:54

linq级联

2009-09-16 15:33:22

LINQ to XML

2009-09-07 16:44:28

Linq String

2009-09-16 17:11:35

LINQ To SQL

2009-09-10 18:02:23

LINQ to SQL

2009-09-14 16:46:15

LINQ to XML

2009-09-14 18:23:59

LINQ嵌套查询

2009-09-14 09:46:00

LINQ to SQL

2009-09-15 10:12:37

LINQ To SQL

2009-09-17 18:05:15

linq to sql

2009-09-15 09:19:22

linq动态条件

2009-09-14 13:37:25

LINQ ADO.NE

2009-09-17 10:57:06

Linq随机读取数据

2009-09-10 14:47:53

Linq .NET查询

2009-09-17 17:34:23

linq to sql

2009-09-14 19:14:51

LINQ动态查询

2009-09-09 17:45:07

Linq表达式

2009-09-10 10:09:46

LINQ to SQL

2009-09-14 17:10:57

LINQ模糊查询
点赞
收藏

51CTO技术栈公众号