I'm trying to create some tables in sqlite with VS Community 2017 (c # and xamarin android) from classes that are defined by EntityTypeConfiguration . Below I try to better detail my difficulty. Thanks in advance for any help.
** Commom properties using System; namespace Agenda.Domain.Common { public class CommonProperties { public DateTime? Datalt { get; set; } } } *-*-*-*-*-*-*-*-*-*-*- ** Classe Anêmica ** using Agenda.Domain.Common; using System; namespace Agenda.Domain { public class User_Mobile : CommonProperties { public decimal Pk { get; set; } public string id { get; set; } public string ativo { get; set; } public string Senha { get; set; } } } *-*-*-*-*-*-*-*-*-*-*- ** Mapeamento da Classe User_Mobile ** using Agenda.Domain; using System.ComponentModel.DataAnnotations.Schema; using System.Data.Entity.ModelConfiguration; namespace Agenda.Infra.Mappings { public class User_MobileMap : EntityTypeConfiguration { public User_MobileMap() { ToTable("user_mobile"); // Tabela no banco de Dados SQLServer (WebAPI) no WebApi funciona corretamente. HasKey(x => x.Pk); Property(x => x.Pk).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); Property(x => x.id).HasMaxLength(100).IsRequired(); Property(x => x.ativo).HasMaxLength(1).IsRequired(); Property(x => x.Senha).HasMaxLength(50).IsRequired(); } } } *-*-*-*-*-*-*-*-*-*-*- ** Classe DBRepositório ** using Android.Util; using SQLite; using Agenda.Infra.Mappings; using System; using System.IO; namespace Agenda.ManMob.DataBase { public class DBRepositorio { // Cria a base de dados caso não exista. string sPath = ""; public DBRepositorio() { sPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "DBSTN.db3"); } public bool CreateTable() { try { using (var conn = new SQLiteConnection(sPath)) { conn.CreateTable(); ==>> Aqui está o problema. // no acompanhamento do processo (DEBUG) o nome da tabela passada para o conn.CreateTable é o nome da classe mapping (User_MobileMap) quando deveria ser o nome apontado em ToTable("user_mobile"). // Como o nome difere da classe anêmica que conhece o banco de dados SQLServer me retorna um erro de que nenhuma coluna foi encontrada para criar a tabela. // Se puder me auxiliar neste ponto, ficarei muito grato. // Mensagem Original: "Cannot create a table with zero columns (does 'Agenda.Infra.Mappings.User_MobileMap' have public properties?)" return true; } } catch (SQLiteException SQLError) { Log.Info("SQLite Ex.", SQLError.Message); return false; } } public bool CreateDB() { try { using (var conn = new SQLiteConnection(sPath)) { } return true; } catch (Exception SQLError) { Log.Info("SQLite Ex.", SQLError.Message); return false; } } } } *-*-*-*-*-*-*-*-*-*-*- ** Button com a chamanda a classe DBRepositorio ** try { DBRepositorio repo = new DBRepositorio(); if (repo.CreateDB()) { repo.CreateTable(); Toast.MakeText(this, "Tabela criada", ToastLength.Long).Show(); } } catch (Exception Error) { Toast.MakeText(this, Error.Message, ToastLength.Long).Show(); } Att., Alexandre