Как вставить значение ключа в таблицу Sqlite с помощью dommel

У меня есть класс, у которого есть значение ключа, которое не имеет имени Id.

      public class MunicipalityCatalog : Catalog
{
    public int MunicipalityId { get; set; }

    public string MunicipalityName { get; set; }

}

Он наследуется от класса (Каталог), у которого есть свойство Id, которое я не использую. Я настроил сопоставление с помощью Dapper.FluentMap.Dommel для этого класса, игнорируя свойства каталога, которые мне не нужны.

      public class MunicipalityCatalogMap : DommelEntityMap<MunicipalityCatalog>
    {
        public MunicipalityCatalogMap()
        {
            ToTable("CatalogDataObcine");

            Map(o => o.MunicipalityId).ToColumn("Id").IsIdentity().IsKey();
            Map(o => o.MunicipalityName).ToColumn("Name");
            Map(o => o.ChangeData).ToColumn("ChangeData");

            Map(p => p.CatalogType).Ignore();
            Map(p => p.StartTime).Ignore();
            Map(p => p.EndTime).Ignore();
            Map(p => p.Name).Ignore();
            Map(p => p.Type).Ignore();
            Map(p => p.Description).Ignore();
            Map(p => p.Id).Ignore();
        }
    }

Теперь всякий раз, когда я пытаюсь вставить объект, MunicipalityId не вставляется в таблицу. Моя вставка выглядит так

      public async Task Insert<T>(IEnumerable<T> catalogs) where T : class
{
      using var connection = new SqliteConnection(_configuration.GetConnectionString("Sqlite"));

      await connection.InsertAllAsync(catalogs);
}

И я называю это так:

      
List<MunicipalityCatalog> catalogs = new()
{
     new MunicipalityCatalog()
     {
          StartTime = DateTime.Now,
          EndTime = DateTime.Now.AddYears(1),
          Description = "Test catalog",
          ChangeData = DateTime.Now.AddHours(1),
          CatalogType = 1,
          Id = 1,
          Name = "Test catalog name",
          Type = 5,
          MunicipalityId = 142,
          MunicipalityName = "Obcina"
     }
};

await _repository.Insert(catalogs);

В заключение я хочу, чтобы MunicipalityId (142) был вставлен в таблицу CatalogDataObcine.Id

PS. если кто-нибудь знает, как автоматически игнорировать несопоставленные свойства, поделитесь секретом;)

0 ответов

Другие вопросы по тегам