I am using .NET Core 5.0-preview, Entity Framework Core 5.0-preview, Blazor server-size, C#, Visual Studio 2019 preview, Microsoft SQLServer 2019.
I want get size of database
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';
I want a decimal number what is size of database on disk, for show to to end-user at Blazor web-page.
I tried solution at https://stackoverflow.com/a/35305900/3728901 but the API of Entity Framework Core 5.0 is different, something like this
var rawSQL = dbContext.SomeModels.FromSql("my SQL");
is not work.
File 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 = ...
}
How to archive my need (Get the size of database schema, then show it to user see, for example, for pay-as-you-go subscription purpose)?