我想从Entity Framework Core 2.0执行一个SQL命令,但是我不知道如何做。
1.- 我需要这样做的原因是我想删除数据库表中的所有数据,使用Context.remove或Context.removeRange会对数据库产生很多调用(每个数据都要调用一次)。 2.- 我已经阅读到了有一种方法叫做.ExecuteSqlCommand可以实现这一点,但是在我的Context.Database中不存在(也许在Core 2.0中已经删除了?)。这是信息的来源:Dropping table In Entity Framework Core and UWP 所以,基本上我需要使用EF Core 2.0从代码中删除一个表,并且据我所知,我需要执行一个SQL命令来实现这一点。
谢谢。
这是我的.csproj文件,以防我错过了什么。
1.- 我需要这样做的原因是我想删除数据库表中的所有数据,使用Context.remove或Context.removeRange会对数据库产生很多调用(每个数据都要调用一次)。 2.- 我已经阅读到了有一种方法叫做.ExecuteSqlCommand可以实现这一点,但是在我的Context.Database中不存在(也许在Core 2.0中已经删除了?)。这是信息的来源:Dropping table In Entity Framework Core and UWP 所以,基本上我需要使用EF Core 2.0从代码中删除一个表,并且据我所知,我需要执行一个SQL命令来实现这一点。
谢谢。
这是我的.csproj文件,以防我错过了什么。
<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>
Microsoft.EntityFrameworkCore.Relational
,那里定义了ExecuteSqlCommand[Async]
。 - MEMarkvar connection = context.Database.GetDbConnection();
包装在using
块中。这样做会导致上下文的连接被释放,尝试在之后使用它将会出现此错误:The ConnectionString property has not been initialized.
。 - Berend Engelbrecht