Dan*_*dry 5 .net c# asp.net-mvc entity-framework
我正在构建一个简单的MVC应用程序来管理库.出于开发目的,我希望EF每次模型更改时都会删除并重新创建数据库,并填充一些示例数据.在这一刻,我努力让初始化器工作.Initializer类如下所示:
public class LibraryInitializer : DropCreateDatabaseIfModelChanges<LibraryContext>
{
protected override void Seed(LibraryContext context)
{
// sample data to be writted to the DB
}
}
Run Code Online (Sandbox Code Playgroud)
上下文类看起来像这样:
public class LibraryContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Book> Books { get; set; }
public LibraryContext()
{
Database.SetInitializer<LibraryContext>(new LibraryInitializer());
}
}
Run Code Online (Sandbox Code Playgroud)
此时我收到以下错误:
无法使用实例引用访问成员'Database.SetInitializer(IDatabaseInitializer)'; 用类型名称来限定它
根据Web上提供的许多指南,这是使用初始化程序的方法,但我不知道为什么会出现此错误.任何帮助都会得到很大的帮助.谢谢!
Ham*_*jam 16
在C#您无法static从实例访问成员.您必须static使用类型名称访问成员.使用完整类型名称.
System.Data.Entity.Database.SetInitializer<LibraryContext>(new LibraryInitializer());
Run Code Online (Sandbox Code Playgroud)
DbContext有一个Database属性是System.Data.Entity.Database类的实例.当您Database在DbContext其中写入指向该实例并且因为您无法从实例访问静态方法时,您会收到错误.
| 归档时间: |
|
| 查看次数: |
2643 次 |
| 最近记录: |