Eu estou tentando executar um aplicativo de demonstração para fazer um POC emLinq-to-sqlite. Eu estou usando o pacote System.Data.Sqlite NuGet mais recente e .Net Framework 4.5 para criar aplicativo de console de exemplo que criará apenas o arquivo de banco de dados inicialmente.O código simplesmente cria um objeto de classe de filme e adiciona-lo à propriedade DbSet no Classe DbContext.No entanto, em SaveChanges (), recebo um System.Data.Entity.Infrastructure.DbUpdateException com a mensagem "nenhuma tabela como: Movie". Abaixo está o meu código:
if (!File.Exists(_databaseFilePath))
SQLiteConnection.CreateFile(_databaseFilePath);
using (var dbContext = new MovieAppContext())
{
dbContext.Movies.Add(new Movie(1, "Titanic", 7.5));
var retVal = dbContext.SaveChanges();
}
public class MovieAppContext : DbContext
{
public MovieAppContext():base("MovieAppConStr")
{
}
public MovieAppContext(string connectionString)
: base(connectionString)
{ }
public DbSet<Movie> Movies { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// Chinook Database does not pluralize table names
modelBuilder.Conventions
.Remove<PluralizingTableNameConvention>();
}
}
EDITAR: Então, a questão é, assim como o Linq-to-Sql, o provedor Linq-to-Sqlite nos permite criar tabelas no banco de dados equivalentes aos modelos criados usando a abordagem code-first?
Respostas:
0 para resposta № 1Código do Entity Framework Primeiro apenas com SQLiteFunciona com um banco de dados existente, então não. Existem provedores alternativos de EF para sqlite que suportam a criação de banco de dados com Code First ... Devart por exemplo