Как вставить значение ключа в таблицу 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. если кто-нибудь знает, как автоматически игнорировать несопоставленные свойства, поделитесь секретом;)