Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ到SQL-我是在获取还是在操作本地数据?_C#_Sql_Linq_Linq To Sql - Fatal编程技术网

C# LINQ到SQL-我是在获取还是在操作本地数据?

C# LINQ到SQL-我是在获取还是在操作本地数据?,c#,sql,linq,linq-to-sql,C#,Sql,Linq,Linq To Sql,在我现在看到的一些代码中,我们正在执行LINQ到SQL查询,如下所示: db.Customers.Where(c => c.Name.StartsWith("A")) .OrderBy(c => c.Name).Select(c => c.Name.ToUpper()); 但我看到的许多示例中,Linq to SQL代码的编写方式如下: var query = from c in db.Customers where c.Name.StartsWith ("A")

在我现在看到的一些代码中,我们正在执行LINQ到SQL查询,如下所示:

db.Customers.Where(c => c.Name.StartsWith("A"))
.OrderBy(c => c.Name).Select(c => c.Name.ToUpper());
但我看到的许多示例中,Linq to SQL代码的编写方式如下:

var query =
   from c in db.Customers
   where c.Name.StartsWith ("A")
   orderby c.Name
   select c.Name.ToUpper();
我担心的是,我们在当前代码中获取整个表,然后在本地对其进行操作,从我的角度来看,与SQL server进行操作相比,这是没有效率的


这两个例子是等效的还是有区别?

在发现我搜索的是“linq vs.method chaining”之后,我在这里找到了答案:

问题是方法链接和linq查询之间是否有区别,正如我在问题中所描述的


答案是没有,你可以自由地使用这两种方法。注释提到编译时间可能会有细微的差异,但这不是我关心的问题。

这可能是多余的信息,但在这两个代码块中,您无法从数据库中获得任何信息。此时,您将只告诉LINQ应该运行什么查询。要实际运行查询,您需要添加对.First、.FirstOrDefault、.Single、.SingleOrDefault、.ToList或其异步对应项的调用。

两者都是等效的,您应该描述链接,因为链接可能有一天会消失