Cześć Wszystkim,
Mój program tworzy bazę danych o ile ta wcześniej nie istniała. Jeżeli istnieje to po prostu dopisuje do niej dane. Problem jednak w tym, że gdy zmienię model (dodając chociażby jedną kolumnę - CodeFirst - to program już nie wpisuje poprawnie danych do tej bazy. Wiem, że to problem z migracjami jednak nie wiem jak go rozwiązać. Mam nadzieję, że ktoś pomoże. Poniżej kody źródłowe:
a) model:
using System;
using System.ComponentModel.DataAnnotations.Schema;
namespace test
{
[Table("test")]
public class test
{
public int Id { get; set; }
[Column("SCIEZKA_LOKALNA")]
public string LocalPath { get; set; }
[Column("STATUS_PRZENIESIENIA")]
public string MoveStatus { get; set; }
[Column("DATA_UTWORZENIA")]
public DateTime CreateDate { get; set; }
}
}
b) połączenie:
using System;
using System.Data.Entity;
using System.Data.SQLite;
using System.IO;
namespace SimpleScanSynch
{
public class LocalSqliteUtils
{
private readonly string database = "test.sqlite";
public LocalSqliteUtils()
{
CreateDbEntity();
}
private void CreateDbEntity()
{
if (!File.Exists(database))
{
new BaseContext(database);
}
}
}
c) kontekst:
using SQLite.CodeFirst;
using System.Data.Entity;
using System.Data.SQLite;
namespace SimpleScanSynch.Context
{
public class BaseContext : DbContext
{
public BaseContext(string database) : base(new SQLiteConnection()
{
ConnectionString = new SQLiteConnectionStringBuilder()
{
DataSource = database,
ForeignKeys = true
}
.ConnectionString
}, true)
{ }
public virtual DbSet<test> test{ get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer(new SqliteCreateDatabaseIfNotExists<BaseContext>(modelBuilder));
base.OnModelCreating(modelBuilder);
}
}
}