[英]how do i get my dynamic controls for updating database rows to go away when i delete the corresponding row from the DB
[英]How do I replace Database.ExecuteSqlQuery when changing TargetFramework away from.NetCore2.1
我有以下在帶有SDK的.NetCore2.1中運行良好的功能
Microsoft.AspNetCore.App(2.1.1)
Microsoft.NetCore.App(2.1.0)
我的代碼是
public static int TransitTime(string postcode, ApiDbContext con)
{
var query = "SELECT top 1 Mins from Transit where postcode = @Postcode order by mins desc;";
var p1 = new SqlParameter("@Postcode",postcode);
var result = 0;
using (var dr = con.Database.ExecuteSqlQuery(query,p1))
{
var reader = dr.DbDataReader;
while (reader.Read()) result = (int)reader[0];
}
return Convert.ToInt32(result);
}
將鼠標懸停在數據庫一詞上我可以看到它在
Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade
我沒有看到具體的參考
Microsoft.EntityFrameworkCore.Infrastructure
在兩個SDK中,所以我想知道如何引用它。
但是我需要添加對Framework 4.7.2 dll的引用
所以我切換到以下項目文件
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFramework>netstandard2.0</TargetFramework>
<ApplicationIcon />
<StartupObject />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="2.2.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.6" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.2.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Common\SBD.Common.csproj" />
</ItemGroup>
</Project>
現在我得到一個錯誤
CS1061'DatabaseFacade'不包含'ExecuteSqlQuery'的定義
我嘗試在Nuget Manage Packages for Solution中查找Microsoft.EntityFrameworkCore.Infrastructure形式,但未顯示。
看着這個問題,我決定嘗試改用.FromSQl。
閱讀完此鏈接的末尾后,我正在嘗試
public static int TransitTime(string postcode, ApiDbContext con)
{
var query = "SELECT top 1 Mins from Transit where postcode = @Postcode order by mins desc;";
var p1 = new SqlParameter("@Postcode", postcode);
var result = 0;
using (var command = con.Database.GetDbConnection().CreateCommand())
{
command.CommandText = query;
command.Parameters.Add(p1);
con.Database.OpenConnection();
using (var reader = command.ExecuteReader())
{
while (reader.Read()) result = (int)reader[0];
}
}
return Convert.ToInt32(result);
}
我看到這是在Microsoft.EntityFrameworkCore.Infrastructure中使用擴展方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.