这篇文章主要介绍“Linq链接的方法是什么”,在日常操作中,相信很多人在Linq链接的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linq链接的方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
以下是一段Linq连接的代码(Group By)
SELECT p.ParentId, COUNT(c.ChildId)FROM ParentTable p LEFT OUTER JOIN ChildTable c ON p.ParentId = c.ChildParentIdGROUP BY p.ParentId
转换成Linq连接:
(from p in context.ParentTable join c in context.ChildTable on p.ParentId equals c.ChildParentId into j1 from j2 in j1.DefaultIfEmpty() select new { ParentId = p.ParentId, ChildId = j2==null? 0 : 1 }) .GroupBy(o=>o.ParentId) .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链接的方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!