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);
Спасибо за вашу помощь!