4
我在使用Dapper
時遇到問題。 我有一個Rubrica
類的列表,其中包含字段valore
。 當我運行一個查詢JOIN,並確定日程類型,valore
場仍然設置爲null
某些值在Dapper Multi Mapping上返回null
我的兩個班Rubrica
和TipoAgenda
public class Rubrica // Same as table anagrafico_rubrica
{
public int id_rubrica { get; set; }
public string cod_anagrafica { get; set; }
public string descrizione_contatto { get; set; }
public TipoRubrica tipo { get; set; }
public string valore { get; set; }
}
public class TipoRubrica // Same as table anagrafico_tipo_rubrica
{
public int id_tipo_rubrica { get; set; }
public string descrizione_tipo_rubrica { get; set; }
}
我創建了返回我的列表功能的Agenda
做JOIN與表anagrafico_tipo_rubrica
public List<Rubrica> GetAgendaAnagrafico(string codiceAnagrafico)
{
using (DatabaseConnection db = new DatabaseConnection())
{
const string query = @"SELECT * FROM anagrafico_rubrica JOIN anagrafico_tipo_rubrica ON tipo = id_tipo_rubrica WHERE cod_anagrafica = @anagrafico";
var parametri = new { anagrafico = codiceAnagrafico };
return db.con.Query<Rubrica, TipoRubrica, Rubrica>(query, (rubrica, tipo) => { rubrica.tipo = tipo; return rubrica; }, parametri, splitOn: "tipo").ToList();
}
}
在這裏,您可以看到該查詢返回
在這裏,你看怎麼樣的int Agenda
名單有valore
一套以null
試過了,它的工作原理!我認爲Dapper可以理解考慮到班級名稱的情況下,哪些字段會自動關聯這些值。 –
按照慣例,它在'Id'字段上分開,但是如果你明確地告訴它要在哪個列上分開(在參數splitOn:「tipo」上),它會按照你命令的方式去做;-) – Jcl
即使不是這種情況,明智地(除非你有一個非常具體的需求)明確地在你的查詢中選擇你需要的字段,而不是使用'SELECT *':-) – Jcl