是否有可能运行使用LINQ任意查询到SQL? (C#)有可能、LINQ、SQL

2023-09-04 03:20:05 作者:小祸害

怎么会写下面的查询使用LINQ to SQL?

How would I write the following query using Linq to SQL?

UPDATE [TB_EXAMPLE] SET [COLUMN1] = 1

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

(My actual goal is more complex than this)

推荐答案

DataContext类有两种查询方法,的ExecuteCommand和的executeQuery。

The DataContext class has two query methods, ExecuteCommand, and ExecuteQuery.

executeQuery方法返回的LINQ to SQL实体,所以你需要传递一个类型是:

The ExecuteQuery method returns LINQ to SQL Entities, so you need to pass a type to it:

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

[C#]
MyDataContext.ExecuteQuery<Product>("SELECT * FROM PRODUCTS");

然而,的ExecuteCommand并不需要一个类型,你会使用这个方法用于更新查询,因为你只需要一个字符串来编写查询,你可以使用反射,使一个真正通用的Update方法为您DAL。

However, the ExecuteCommand doesn't need a type, you'd use this method for your UPDATE query Because you only need a String to write the query, you can use reflection to make a really generic UPDATE method for your DAL.

MyDataContext.ExecuteCommand("UPDATE Products WHERE ProductID = {0}",1) 

MyDataContext.ExecuteCommand("UPDATE Products WHERE ProductID = 1")