gpt4 book ai didi

c# - Linq To Sql 动态插入

转载 作者:太空宇宙 更新时间:2023-11-03 16:18:59 25 4
gpt4 key购买 nike

我目前有一个 Linq to Sql 实现,它需要很长时间才能执行插入操作,因此我尝试使用紧凑的插入语句来加快它的速度,但仍然使用 linq to sql 的执行命令。

我有一个 string[],我正试图像这样传递给 ExecuteCommand 的 object[] parameters 参数。

string sqlStart = "INSERT INTO BusinessContacts (Guid,BusinessId,Name,Email,Address,City,State,PostalCode,Phone,URL) VALUES ";
string sqlParams = "(NewId(),1,{{{0}}},{{{1}}},{{{2}}},{{{3}}},{{{4}}},{{{5}}},{{{6}}},{{{7}}}),";
string[] values = new string[8000];
int curParam = -1;
sbSqlValues.Append(sqlStart);
foreach (var email in emails) {
sbSqlValues.AppendFormat(sqlParams, ++curParam, ++curParam, ++curParam, ++curParam, ++curParam, ++curParam, ++curParam, ++curParam);
curParam -= 8;
values[++curParam] = email.Name;
values[++curParam] = (email.Email);
values[++curParam] = (email.Address);
values[++curParam] = (email.City);
values[++curParam] = (email.State);
values[++curParam] = (email.PostalCode);
values[++curParam] = (email.Phone);
values[++curParam] = (email.URL);
}
sbSqlValues.Remove(sbSqlValues.Length - 1, 1);
inserted += ExecuteCommand(sbSqlValues.ToString(), values);

但即使我传入了一个字符串数组,我仍然收到异常:A query parameter cannot be type 'System.Object'.

最佳答案

尝试:(object[])values 作为第二个参数。 C# 编译器将 string[] 转换为单元素 params

关于c# - Linq To Sql 动态插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14712216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com