Linq to sql 执行表截断的正确LINQtoSQL方法是什么?

Linq to sql 执行表截断的正确LINQtoSQL方法是什么?,linq-to-sql,tsql,data-access-layer,truncate,Linq To Sql,Tsql,Data Access Layer,Truncate,我有一个项目,它有一个强大的数据访问层,使用LinqtoSQL处理任何与数据库有关的内容。我需要构建一个帮助器类,将一些常见的crud操作从CLSA对象连接到LinqToSql对象。在我需要对一个表进行截断之前,一切都运行得很顺利,我所拥有的只是“delete”方法 哦。快速搜索发现有些人正在使用YourContext.ExecuteCommand(),这很好,但最近我尝试尽可能地减少“t-sql” 有没有一种LINQ方法来执行一个任务?还是我只是?如果不执行自定义T-SQL查询,这是不可能的。

我有一个项目,它有一个强大的数据访问层,使用LinqtoSQL处理任何与数据库有关的内容。我需要构建一个帮助器类,将一些常见的crud操作从CLSA对象连接到LinqToSql对象。在我需要对一个表进行截断之前,一切都运行得很顺利,我所拥有的只是“delete”方法

哦。快速搜索发现有些人正在使用YourContext.ExecuteCommand(),这很好,但最近我尝试尽可能地减少“t-sql”


有没有一种LINQ方法来执行一个任务?还是我只是?

如果不执行自定义T-SQL查询,这是不可能的。正如您可能已经知道的那样,在单词后执行.Delete()并提交更改将导致Delete语句


当然,您可以创建一个截断表的存储过程,然后从LINQ调用该过程,但我相信这并不是您真正想要的。

您可以这样做:

yourDataContext.ExecuteCommand("TRUNCATE TABLE YourTable");

正确的。这就是我在问题中提到的。我终于试着摆脱TSQL了!!!:)是 啊这是最常用的OOP方法,但它仍然需要传递字符串变量。我有一个名为“Page”的表,它在C#/ASPNET世界中需要是“Pages”,原因很明显。因此,截断该表需要开发人员知道“page”==实体页面。如果您创建了存储过程,可以通过将“Pages”-ish C#存储过程名称映射到执行截断的数据库中的实际存储过程来绕过该问题。如果必须采用TSQL方法,则可以将该方法添加到生成的部分LINQ类中(取决于创建它们的方式),并以这种方式将其隐藏。现在我们在去纳德维尔的特快列车上。人口:美国。我喜欢。我的意思是,基本上他们会传入一个实体对象,我会将类型转换为字符串,并将其传递到将类映射到表名的存储过程中。美好的