【发布时间】:2021-12-11 10:20:27
【问题描述】:
我使用 EF Core - Database.EnsureCreated 通过 C# 类创建表,但现在我只想创建表和列 SQL,而不向数据库发送请求。
例如
public class ApplicationDbContext : DbContext
{
public DbSet<Dto> Dtos{ get; set; }
}
public class Dto
{
[Key]
[StringLength(10)]
public string ID{ get; set; }
[StringLength(100)]
[Required]
public string Name{ get; set; }
[Required]
public int Age{ get; set; }
}
db.Database.EnsureDeleted();
预期结果:
create table Dto
{
ID nvarchar(10) primary key not null,
Name nvarchar(100) not null,
Age int not null
}
我尝试了什么?
我确实打开了 SSMS 配置文件并从 EF Core 获取 SQL,但它需要向数据库发送请求。
【问题讨论】:
-
您需要通过扩展方法
db.Database.GenerateCreateScript()调用IRelationalDatabaseCreator.GenerateCreateScript()。 (github.com/dotnet/efcore/blob/…) -
@JeremyLakeman 谢谢,您的回答完美解决了问题!你能在下面回答吗?我会把它标记为答案。
标签: c# entity-framework-core entity-framework-migrations