O que é a maneira correta LINQtoSQL-ish para fazer um truncamento mesa?
-
06-07-2019 - |
Pergunta
Eu tenho um projeto com uma camada de acesso a dados formidável usando LinqToSql para praticamente qualquer coisa tocando nossas bases de dados. I necessário para construir uma classe auxiliar que preenche algumas das operações comuns CRUD da CLSA objetos para os LinqToSql. Tudo vem operando maravilhas até que eu precisava fazer uma truncado sobre uma mesa e tudo que eu tinha eram métodos “delete”.
Uh-oh. Uma rápida pesquisa revela que algumas pessoas estão usando YourContext.ExecuteCommand (), que é bom e tudo, mas eu estou tentando ir “t-sql-menos”, tanto quanto possível nos dias de hoje.
Existe uma maneira LINQ para executar uma truncado no mesa? Ou eu sou só nora ?
Solução
Isto não é possível sem fazer uma consulta personalizada T-SQL. Fazendo uma .Delete () e SubmitChanges afterwords faria, como você provavelmente já sabe, resultado em uma instrução DELETE.
Claro que você pode criar um procedimento armazenado que trunca a tabela e, em seguida, chamar o procedimento de LINQ, mas isso não é realmente o que você está procurando Eu acredito.
Outras dicas
Você pode fazer algo como isto:
yourDataContext.ExecuteCommand("TRUNCATE TABLE YourTable");