-
Notifications
You must be signed in to change notification settings - Fork 22
Description
Hi,
I am having some trouble with the migration to sql lite which has schema defined :
Below is my Models
I have below Model"
public abstract class BaseEntity
{
[Key]
public int Id { get; set; }
}
public class User: BaseEntity
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public virtual ICollection<Questions> Questions{ get; set; }
}
public class Questions: BaseEntity
{
public string Details { get; set; }
public int UserId { get; set; }
public virtual User User { get; set; }
}
Db Context
public MyDbContext()
: base("ConnectionStringName")
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDbContext, Configuration>(true));
}
public DbSet<User> Users { get; set; }
public DbSet<Device> Devices { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// Configure Code First to ignore PluralizingTableName convention
// If you keep this convention then the generated tables will have pluralized names.
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<Device>()
.HasRequired<User>(s => s.User)
.WithMany(g => g.Devices)
.HasForeignKey<int>(s => s.UserId);
}
Migration configuration:
internal sealed class Configuration : DbMigrationsConfiguration
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
SetSqlGenerator("System.Data.SQLite", new SQLiteMigrationSqlGenerator());
}
I also tried putting ForeignKey attribute, but no luck
Everything comes properly in Database except the foreign key. The relationship is not defined in the sqllite DB.
And for me when I clone this project I was not able to build, was getting some nuget issues, so could not debug or run the example project.
Does below line means its is not supprted:
Relationships are not enforced with constraints
Connection string: