Ich habe folgende Klassen
public class TenantUser
{
public string UserId { get; set; }
public DateTime LastActivityDate { get; set; }
public TenantInformation TenantInfo { get; set; }
}
public class TenantInformation
{
public string InstitutionId { get; set; }
public string InstitutionName { get; set; }
}
Ich kann Informationen mit Dapper erfolgreich abrufen:
string query = "select tu.UserId, tu.InstitutionId, ti.InstitutionName
from tenantuser as tu "
+ "inner join tenantinfo ti on ti.InstitutionId = tu.InstitutionId";
var res = d.Query<TenantUser, TenantInformation, TenantUser>(query, (tu, ti) =>
{ tu.TenantInfo = ti; return tu; }, "InstitutionId");
Wie würde ich Daten in die TenantUser-Tabelle einfügen?
Ich habe es versucht:
var tenantUser = new TenantUser();
tenantUser.UserId = "testuser@mail.com";
tenantUser.TenantInfo =
d.Query<TenantInformation>("select * from tenantinfo").First(); //This works
tenantUser.LastActivityDate = DateTime.Now;
string query =
"insert into tenantUser values(@userid, @institutionid, @lastactivitydate)";
d.Execute(query, tenantUser);
Da InstitutionId
eine Eigenschaft in dem TenantInfo
Objekt TenantInfo
, TenantInfo
ich den Fehler: "Muss die skalare Variable \" @ institutiontid \ "deklarieren.
Wie würde ich das bitte reparieren?
Dapper ist bewusst einfach. In Ihrem Szenario müssten Sie die Daten reduzieren - zumindest für die insert
:
d.Execute(query, new {
userid = tenantUser.UserId,
institutionid = tenantUser.TenantInfo.InstitutionId,
lastactivitydate = tenantUser.LastActivityDate
});