是否可以使用Linq to SQL运行任意查询? (C#)
如何使用Linq to SQL编写以下查询?
UPDATE [TB_EXAMPLE] SET [COLUMN1] = 1
(我的实际目标比这更复杂)
DataContext类有两个查询方法,ExecuteCommand和ExecuteQuery。
ExecuteQuery方法返回LINQ to SQL Entities,因此您需要向其传递一个类型:
[VB.Net] MyDataContext.ExecuteQuery(Of Product)("SELECT * FROM PRODUCTS") [C#] MyDataContext.ExecuteQuery("SELECT * FROM PRODUCTS");
但是,ExecuteCommand不需要类型,您将此方法用于UPDATE查询因为您只需要一个String来编写查询,您可以使用reflection为DAL创建一个非常通用的UPDATE方法。
MyDataContext.ExecuteCommand("UPDATE Products WHERE ProductID = {0}",1)
要么
MyDataContext.ExecuteCommand("UPDATE Products WHERE ProductID = 1")
是。 DataContext有一个ExecuteCommand方法,允许您执行任意(希望是参数化的)SQL。
引用上面DataContext链接的注释:
对于LINQ to SQL无法充分提供特定方案的情况,此方法是一种传递机制。
该命令的语法与用于创建ADO.NET DataCommand的语法几乎相同。 唯一的区别在于如何指定参数。 具体来说,您可以通过将参数括在大括号({…})中来指定参数,并从0开始枚举它们。该参数与参数数组中编号相同的对象相关联。
foreach(var TB_EXAMPLE ex dbDataContext.TB_EXAMPLES) { ex.COLUMN1 = 1; } dbDataContext.SubmitChanges();
假设有一个DataContext连接,您可以使用DataContext对象的ExecuteCommand方法来执行不返回对象的SQL命令。
https://msdn.microsoft.com/en-us/library/bb386906.aspx
var row = (from t in dataContext.table where t.id==1 select t).Single(); row.columnName = 1; dataContext.SubmitChanges();
edt,oops减速;)
您可以直接更新对象,然后调用保存更改。
using (var ctx = new MyDataContext()) { var customer = ctx.Customers.First(); customer.Name = "New Name"; ctx.SaveChanges(); }
如果您正在寻找这样的实际SQL命令,那么Scott Guthrie有一篇很好的文章,演示了如何在https://weblogs.asp.net/scottgu/archive/2007/08/27/linq上使用ExecuteQuery和ExecuteCommand方法-to-SQL部分-8-执行定制-SQL expressions.aspx
上述就是C#学习教程:是否可以使用Linq to SQL运行任意查询? (C#)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1042334.html