Si je veux insérer plusieurs objets dans une base de données SQL Server, il semble que je dois faire:Y a-t-il un moyen moins tortueux de S'INSCRIRE?
using (var command = new SqlCommand(@"INSERT INTO Table1 (
Param_1,
Param_2,
Param_3,
...
)
VALUES (
@param1,
@param2,
@param3,
...
)",conn))
{
command.Params.Add("@param1",...);
command.Params.Add("@param2",...);
command.Params.Add("@param3",...);
...
foreach(var o in objects)
{
command.Params["@param1"].Value = o.Param1;
command.Params["@param2"].Value = o.Param2;
command.Params["@param3"].Value = o.Param3;
...
command.ExecuteNonQuery();
}
}
mettre juste cela ensemble m'a tirant mes cheveux, et j'ai une table avec 28 champs. Je dois écrire cette longue liste 4 fois séparées, avec seulement les différences les plus triviales (les noms de champs DB peuvent utiliser une convention de nommage différente). Cela semble fou. Y a-t-il un moyen plus court?
Entity Framework n'est pas une option pour moi ici qui aurait été mon premier choix, je dois rouler le code.
Pourriez-vous utiliser [Dapper] (https://github.com/StackExchange/Dapper)? – juharr
Je n'en avais jamais entendu parler auparavant; Je ne suis pas trop enthousiaste à l'idée d'ajouter des dépendances supplémentaires. –
Je suis habitué à utiliser xml pour transmettre un objet ou un objet liste ayant de nombreuses propriétés. Vous pouvez sérialiser l'objet en C# pour le ficeler et le désérialiser en sql – TriV