Exécuter la commande SQL dans l'Entity Framework 2.0 pour supprimer toutes les données dans une table
Je veux exécuter une commande SQL à partir d'Entity Framework 2.0, mais je ne peux pas comprendre comment le faire.
1.- La raison pour laquelle j'ai besoin, est-ce que je veux supprimer toutes les données à partir d'une table de base de données, et en utilisant Context.remove
ou Context.removeRange
serait de produire de nombreux appels à la DB (un pour chaque donnée dans le tableau).
2.- J'ai lu qu'il y est une méthode .ExecuteSqlCommand
pour accomplir cela, mais cette méthode n'est pas présent dans mon Contexte.Base de données (peut-être en Core 2.0 il a été supprimé?). Voici la source de l'info: Tomber de la table Dans le Cadre de l'Entité de Base et UWP
Donc, en gros, j'ai besoin de supprimer une table de code à l'aide de EF Core 2.0 et, autant que je sache, j'ai besoin d'exécuter une commande SQL pour que.
Merci.
Voici mon .csproj, juste au cas où, je suis absent quelque chose
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.0" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<!--<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.1.1" /> -->
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
</ItemGroup>
</Project>
OriginalL'auteur MorgoZ | 2017-09-08
Vous devez vous connecter pour publier un commentaire.
Assurer que vous faites référence à
Microsoft.EntityFrameworkCore
pour inclure toutes les méthodes d'extension qui vous permettent d'exécuter des premières commandes SQL.De la source de dépôt, j'ai trouvé
ExecuteSqlCommand
et liées à des méthodes d'extensionTrouvé un article qui a suggéré d'utiliser ADO.Net.
D'abord, vous prenez une connexion à partir du contexte, de créer une commande et l'exécuter.
Microsoft.EntityFrameworkCore.Relational
qui est l'endroit oùExecuteSqlCommand[Async]
est défini.OriginalL'auteur Nkosi
Exécuter sur l'un quelconque de supprimer la ligne-par-ligne à partir de la table des méthodes.
ExecuteStoreCommand
TRUNCATE TABLE
OriginalL'auteur DanteTheSmith
Context.Database.ExecuteSqlCommand
etContext.Database.ExecuteSqlCommandAsync
sont disponibles dansMicrosoft.EntityFrameworkCore.Relational
espace de noms. Assurez-vous que vous avez c'est une référence.Elle sera disponible dans votre classe et vous pouvez l'appeler comme ci-dessous,
OriginalL'auteur Mohsin
Vous pouvez essayer ce
ce n'était pas moi, mais je pense que parce que votre solution serait de générer de multiples requêtes sur pour supprimer toutes les données, une pour chaque entité avec ObjectState.Supprimé. En dehors de cela, votre réponse les réponses, comment supprimer toutes les données, mais pas comment exécuter une commande SQL à partir d'EF de Base.
Je n'ai pas de voter et oui ce serait "travail". Mais je vais vous dire par expérience que si vous avez une grande liste de patients à supprimer, ce qui peut prendre une éternité à exécuter. L'exécution d'une suppression en bloc à l'aide de sql effectue beaucoup mieux.
OriginalL'auteur Lalitha Sharma