【问题标题】:How to run raw SQL query by Entity Framework Core in Blazor [duplicate]如何在 Blazor 中通过 Entity Framework Core 运行原始 SQL 查询 [重复]
【发布时间】:2020-11-22 04:03:12
【问题描述】:

我正在使用 .NET Core 5.0-preview、Entity Framework Core 5.0-preview、Blazor server-size、C#、Visual Studio 2019 preview、Microsoft SQLServer 2019。

我想获取数据库的大小

SELECT a.dbdisk
FROM
  (SELECT sys.databases.name AS dbname,
          CONVERT(VARCHAR,SUM(SIZE)*8/1024)+' MB' AS dbdisk
   FROM sys.databases
   JOIN sys.master_files ON sys.databases.database_id=sys.master_files.database_id
   GROUP BY sys.databases.name) a
WHERE a.dbname = 'foo';

我想要一个十进制数,磁盘上的数据库大小是多少,以便在 Blazor 网页上显示给最终用户。

我在https://stackoverflow.com/a/35305900/3728901 尝试了解决方案,但 Entity Framework Core 5.0 的 API 不同,类似这样

var rawSQL = dbContext.SomeModels.FromSql("my SQL");

没用。

文件SystemInformation.razor

@page "/system_information"
@using bar.Forms
@using bar.DTO
@using bar.Models
@inject bar.Controllers.BaaController baaController;
@inject bar.Data.ApplicationDbContext dbContext;
@inject bar.Controllers.FooBarController fooBarController;


@code {
    var foo = dbContext.SomeTable.FromSQL(...)
    decimal databaseSize = ...
}

如何归档我的需求(获取数据库架构的大小,然后将其显示给用户查看,例如,用于按需付费订阅)?

【问题讨论】:

标签: c# sql-server entity-framework-core blazor blazor-server-side


【解决方案1】:

您需要使用以下代码。 FromSql 已弃用。

var rawSQL = dbContext.SomeModels.FromSqlRaw("my SQL");

【讨论】:

  • 它不适用于我的 SQL 查询。
猜你喜欢
  • 2019-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 2020-11-27
  • 2017-01-10
  • 1970-01-01
  • 2021-09-02
相关资源
最近更新 更多