Dapper.NET
Dynamiska parametrar
Sök…
Grundläggande användning
Det är inte alltid möjligt att ordentligt paketera alla parametrar i ett enda objekt / samtal. För att hjälpa till med mer komplicerade scenarier tillåter param
parametern är en IDynamicParameters
instans. Om du gör detta, AddParameters
din anpassade AddParameters
metod vid rätt tidpunkt och överlämnas kommandot att bifoga till. I de flesta fall är det dock tillräckligt att använda den befintliga typen DynamicParameters
:
var p = new DynamicParameters(new { a = 1, b = 2 });
p.Add("c", dbType: DbType.Int32, direction: ParameterDirection.Output);
connection.Execute(@"set @c = @a + @b", p);
int updatedValue = p.Get<int>("@c");
Detta visar:
- (valfritt) population från ett befintligt objekt
- (valfritt) lägga till ytterligare parametrar i farten
- överför parametrarna till kommandot
- hämtar uppdaterat värde efter kommandot har slutförts
Notera att på grund av hur RDBMS protokoll arbete, är det oftast bara tillförlitlig för att erhålla uppdaterade parametervärden efter alla data (från en Query
eller QueryMultiple` drift) har helt förbrukats (till exempel på SQL Server, uppdaterade parametervärden är i slutet av TDS-strömmen).
Dynamiska parametrar i Dapper
connection.Execute(@"some Query with @a,@b,@c", new {a=somevalueOfa,b=somevalueOfb,c=somevalueOfc});
Använda ett mallobjekt
Du kan använda en instans av ett objekt för att skapa dina parametrar
public class SearchParameters {
public string SearchString { get; set; }
public int Page { get; set; }
}
var template= new SearchParameters {
SearchString = "Dapper",
Page = 1
};
var p = new DynamicParameters(template);
Du kan också använda ett anonymt objekt eller en Dictionary