У меня есть две таблицы Partners
и Partner_Address
, я хочу сохранить адреса партнеров в другой базе данных. Для этого я использую Transaction
в Dapper
.
. После выполнения запроса на вставку нового partner
я пытаюсь получить последний идентификатор вставки, а затем передать этот идентификатор объекту адреса, но все время получаю 0
. Партнерская запись была успешно вставлена, но последний идентификатор вставки 0
.
Таблицы:
// Partner Address entity
public class AdreseKorisnika
{
public int id { get; set; }
public int partnerId { get; set; } // partnerID
public int adresaId { get; set; } // addressID
public string broj { get; set; } // number
public int status { get; set; }
public int primarna { get; set; } // primary
}
public class Partner
{
public int id { get; set; }
public string naziv { get; set; } // name
public string telefon { get; set; } // phone
public string email { get; set; }
/// etc...
Что я пытаюсь:
public int InsertWithAdresses(Partner partner, AdreseKorisnika adreseKorisnika)
{
using (Conn)
{
string partnerQuery = @"INSERT INTO Partner(naziv, pib, maticni_br, telefon, email, web_sajt, status, created)
VALUES(@naziv, @pib, @maticni_br, @telefon, @email,@web_sajt, @status, @created);";
string addressQuery = @"INSERT INTO Adrese_Korisnika(partnerId, adresaId, broj, status, primarna)
VALUES(@partnerId, @adresaId, @broj, @status, @primarna);";
int affectedRows = 0;
using (var transaction = Conn.BeginTransaction())
{
affectedRows = Conn.Execute(partnerQuery, partner, transaction: transaction);
int id = Conn.Query<int>("SELECT LAST_INSERT_ID();").First();
var addrs = Conn.ExecuteScalar<int>(addressQuery,
new
{
partnerId = id, // <-- here I try to pass last insert id from partnerQuery but it is always 0
adresaId = adreseKorisnika.adresaId,
broj = adreseKorisnika.broj,
status = adreseKorisnika.status,
primarna = adreseKorisnika.primarna
},
transaction: transaction);
transaction.Commit();
}
return affectedRows;
}
}
Я хочу, чтобы у моего Partners
был один или несколько адресов в другой таблице. Я также попробовал это: Dapper MySQL возвращаемое значение
ОБНОВЛЕНИЕ
ОТЛАДКА