是否可以使用Linq to SQL运行任意查询?(C#)

Jad*_*ias 2 .net c# linq-to-sql

如何使用Linq to SQL编写以下查询?

UPDATE [TB_EXAMPLE] SET [COLUMN1] = 1
Run Code Online (Sandbox Code Playgroud)

(我的实际目标比这更复杂)

and*_*ndy 8

DataContext类有两个查询方法,ExecuteCommand和ExecuteQuery.

ExecuteQuery方法返回LINQ to SQL Entities,因此您需要将类型传递给它:

[VB.Net]
MyDataContext.ExecuteQuery(Of Product)("SELECT * FROM PRODUCTS")

[C#]
MyDataContext.ExecuteQuery<Product>("SELECT * FROM PRODUCTS");
Run Code Online (Sandbox Code Playgroud)

但是,ExecuteCommand不需要类型,您可以将此方法用于UPDATE查询因为您只需要一个String来编写查询,所以您可以使用反射为DAL创建一个非常通用的UPDATE方法.

MyDataContext.ExecuteCommand("UPDATE Products WHERE ProductID = {0}",1) 
Run Code Online (Sandbox Code Playgroud)

要么

MyDataContext.ExecuteCommand("UPDATE Products WHERE ProductID = 1") 
Run Code Online (Sandbox Code Playgroud)