【发布时间】: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