0

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';

enter image description here

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)?

James Graham
  • 39,063
  • 41
  • 167
  • 242

1 Answers1

-1

You need to use the below code. FromSql is deprecated.

var rawSQL = dbContext.SomeModels.FromSqlRaw("my SQL");
vivek nuna
  • 16,885
  • 12
  • 74
  • 152