Asp.net mvc 3 不支持SQLite CreateDatabase错误
我将Entity Framework 4.2 CF与SQLite一起使用,但当我尝试启动应用程序时,出现了“CreateDatabase不受提供程序支持”错误。这是我的模型映射:Asp.net mvc 3 不支持SQLite CreateDatabase错误,asp.net-mvc-3,sqlite,entity-framework-4.1,ef-code-first,system.data.sqlite,Asp.net Mvc 3,Sqlite,Entity Framework 4.1,Ef Code First,System.data.sqlite,我将Entity Framework 4.2 CF与SQLite一起使用,但当我尝试启动应用程序时,出现了“CreateDatabase不受提供程序支持”错误。这是我的模型映射: protected override void OnModelCreating(DbModelBuilder modelBuilder) { #region NewsMapping modelBuilder.Entity<News>().To
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
#region NewsMapping
modelBuilder.Entity<News>().ToTable("news");
modelBuilder.Entity<News>().HasKey(x => x.Id).Property(x => x.Id).HasColumnName("ID").HasColumnOrder(0);
modelBuilder.Entity<News>().Property(x => x.Status).HasColumnName("STATUS");
modelBuilder.Entity<News>().Property(x => x.NewsTitle).HasColumnName("NEWS_TITLE");
modelBuilder.Entity<News>().Property(x => x.Content).HasColumnName("CONTENT_1");
modelBuilder.Entity<News>().Property(x => x.IsImportant).HasColumnName("IS_IMPORTANT");
modelBuilder.Entity<News>().Property(x => x.OrderNumber).HasColumnName("ORDER_NUMBER");
modelBuilder.Entity<News>().Property(x => x.CreateDate).HasColumnName("CREATE_DATE");
#endregion
base.OnModelCreating(modelBuilder);
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
#区域新闻映射
modelBuilder.Entity().ToTable(“新闻”);
modelBuilder.Entity().HasKey(x=>x.Id).Property(x=>x.Id).HasColumnName(“Id”).HasColumnOrder(0);
modelBuilder.Entity().Property(x=>x.Status).HasColumnName(“Status”);
modelBuilder.Entity().Property(x=>x.NewsTitle).HasColumnName(“新闻标题”);
modelBuilder.Entity().Property(x=>x.Content).HasColumnName(“Content_1”);
modelBuilder.Entity().Property(x=>x.IsImportant).HasColumnName(“IS_IMPORTANT”);
modelBuilder.Entity().Property(x=>x.OrderNumber).HasColumnName(“订单号”);
modelBuilder.Entity().Property(x=>x.CreateDate).HasColumnName(“创建日期”);
#端区
基于模型创建(modelBuilder);
}
这个代码有什么问题
谢谢代码中没有任何错误。错误正好说明了发生了什么。您的SQLite的EF提供程序(
System.Data.SQLite
),因此您必须在启动应用程序之前手动创建数据库和所有表。好的,我找到了解决方案,该提供程序不支持“数据库创建”,因此我必须将其初始化为空:
public EkosContext()
{
Database.SetInitializer<EkosContext>(null);
}
public ekoscoContext()
{
Database.SetInitializer(null);
}
我在EF 6.1.3
和System.Data.Sqlite 1.0.103
中出现此错误,因为我没有在web.config
文件中正确指定数据库文件的位置
为了解决这个问题,我将数据库文件移动到
App\u Data
,并将连接字符串更改为connectionString=“Data source=| DataDirectory | databaseName;Version=3;”
,因为web.config中我的sqlitedb路径错误,简单又愚蠢,真烦人。你是如何应用这个模型的?这实际上解决了我的问题。同时创建丢失的App\u数据
文件夹。