C# 不';t实现IDatabaseInitializer的接口
当我使用C# 不';t实现IDatabaseInitializer的接口,c#,asp.net-mvc,C#,Asp.net Mvc,当我使用System.Data.Entity.IDatabaseInitializer的接口时,它总是说它没有实现该接口 namespace ImageSharingWithAuth.DAL { public class ImageSharingDB : DbContext { public DbSet<Image> Images { get; set; } public DbSet<User> Users { get
System.Data.Entity.IDatabaseInitializer
的接口时,它总是说它没有实现该接口
namespace ImageSharingWithAuth.DAL
{
public class ImageSharingDB : DbContext
{
public DbSet<Image> Images { get; set; }
public DbSet<User> Users { get; set; }
public DbSet<Tag> Tags { get; set; }
public ImageSharingDB() : base("DefaultConnection") { }
}
}
namespace ImageSharingWithAuth.DAL
{
public class ImageSharingDBInitializer : IDatabaseInitializer<ImageSharingDB>
{
public void IntializeDatabase(ImageSharingDB db)
{
if (db.Database.Exists())
{
db.Database.ExecuteSqlCommand("alter database ImageSharingWithAuth set single_user with rollback immediate");
db.Database.Delete();
}
db.Database.Create();
WebSecurity.InitializeDatabaseConnection(
"DefaultConnection",
"Users",
"Id",
"UserId",
autoCreateTables: true);
this.Seed(db);
}
protected void Seed(ImageSharingDB db)
{......
命名空间ImageSharingWithAuth.DAL
{
公共类ImageSharingDB:DbContext
{
公共数据库集映像{get;set;}
公共数据库集用户{get;set;}
公共DbSet标记{get;set;}
公共ImageSharingDB():base(“DefaultConnection”){}
}
}
命名空间ImageSharingWithAuth.DAL
{
公共类ImageSharingDBInitializer:IDatabaseInitializer
{
公共无效初始化数据库(ImageSharingDB)
{
if(db.Database.Exists())
{
db.Database.ExecuteSqlCommand(“alter Database IMAGESHARINGWITH AUTH set single_user with rollback immediate”);
db.Database.Delete();
}
db.Database.Create();
WebSecurity.InitializeDatabaseConnection(
“默认连接”,
“用户”,
“身份证”,
“用户ID”,
自动创建表:true);
这是种子(db);
}
受保护的无效种子(ImageSharingDB)
{......
接口应该是System.Data.Entity.IDatabaseInitializer
其中TContext:DbContext
,而ImageSharingDB
do是DbContext
,因此我认为ImageSharingDBInitializer
应该实现IDatabaseInitializer
但是,.Net抛出一个错误:
错误CS0535:“ImageSharingWithAuth.DAL.ImageSharingDBInitializer”未实现接口成员System.Data.Entity.IDatabaseInitializer.InitializeDatabase(ImageSharingWithAuth.DAL.ImageSharingDB)'
它应该在-i-tializeDatabase中,但您在tializeDatabase中有。如果您想确保您的类从接口实现所有契约,请右键单击接口的名称(
公共类类名:interfaceName
)并选择实现接口。当然,您必须实现生成方法:)