gpt4 book ai didi

c# - 无法使用自定义数据库初始值设定项

转载 作者:太空狗 更新时间:2023-10-30 00:02:40 30 4
gpt4 key购买 nike

我正在构建一个简单的 MVC 应用程序来管理图书馆。出于开发目的,我希望 EF 在每次模型更改时删除并重新创建数据库,并用一些示例数据填充它。此时此刻,我正在努力让初始化器工作。 Initializer 类如下所示:

public class LibraryInitializer : DropCreateDatabaseIfModelChanges<LibraryContext>
{
protected override void Seed(LibraryContext context)
{
// sample data to be writted to the DB
}
}

上下文类如下所示:

public class LibraryContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Book> Books { get; set; }

public LibraryContext()
{
Database.SetInitializer<LibraryContext>(new LibraryInitializer());
}
}

此时我得到以下错误:

Member 'Database.SetInitializer(IDatabaseInitializer)' cannot be accessed with an instance reference; qualify it with a type name instead

根据网络上的许多指南,这是使用初始化程序的方式,但我不知道为什么会出现此错误。任何帮助将不胜感激。谢谢!

最佳答案

C# 中,您无法从实例访问 static 成员。您必须使用类型名称访问 static 成员。使用完整的类型名称。

 System.Data.Entity.Database.SetInitializer<LibraryContext>(new LibraryInitializer());

DbContext 有一个 Database 属性,它是 System.Data.Entity.Database 类的一个实例。当您在 DbContext 中编写 Database 时,它指向该实例,并且由于您无法从实例访问静态方法,因此您会收到错误。

关于c# - 无法使用自定义数据库初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36953401/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com