浅析Linq链接

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

创新互联建站主要从事网站建设、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务乐山,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

 
 
 
  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

当前标题:浅析Linq链接
链接分享:http://www.mswzjz.cn/qtweb/news32/507982.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能