Dapper FluentMap Dommel: вставка объекта с ключевыми результатами, созданными приложением, null

Я использую Dapper с FluentMap и Dommel, и я хочу вставить объект с ключом, сгенерированным приложением. Проблема в том, что результат операции вставки равен нулю.

Насколько я знаю, мне нужен [ExplicitKey] аннотации, но похоже, что она недоступна для Fluent Mapping.

В Dommel я могу указать свойство только как ключ или идентификатор: я думаю, что IsKey() метод эквивалентен [Key]аннотация Dapper. Но это только для ключей, которые автоматически генерируются базой данных. Я не уверен, какой метод IsIdentity()делает. Я не могу найти для этого документацию. Может быть, это связано с [ExplicitKey] аннотация?


Для лучшего понимания небольшой пример:

У меня есть класс компании:

internal class Company
  {
    public Guid Id { get; set; }
    public string Name { get; set; }
  }

со следующим классом сопоставления:

  internal class CompanyMap : DommelEntityMap<Company>
  {
    public CompanyMap()
    {
      ToTable("Company");
      Map(c => c.Id).IsIdentity();
    }
  }

Здесь я не уверен, что IsIdentity() это правильный выбор.

Нет, когда я создаю объект компании и вставляю его в базу данных, объект вставляется правильно, но я получаю null в результате.

var newCompany = new Company()
        {
          Id = Guid.NewGuid(),
          Name = request.CompanyName
        };

var insertResult = await db.InsertAsync(newCompany);

Спасибо за вашу помощь!

0 ответов

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