当我尝试运行时,出现此错误:
System.Data.SqlClient.SqlException: 'The definition for column 'Column' must include a data type
但我在“业务”类中定义了变量类型
public void import (String TXT_T_NEG, String TXT_ACAO, String TXT_ESPEC_PAPL, String Txt_num_neg, String Id_usr)
{
lista.Add (new business(TXT_T_NEG, TXT_ACAO, TXT_ESPEC_PAPL, Txt_num_neg, Id_usr)
}
public void bulkupdate ()
{
var bulk = new BulkOperations ();
using (TransactionScope trans = new TransactionScope ())
{
using (SqlConnection cone = new SqlConnection (@"Myconnection"))
{
bulk.Setup <business> ()
.ForCollection (lista)
.WithTable ("table")
.AddColumn (x => x.Txt_t_neg)
.AddColumn (x => x.Txt_acao)
.AddColumn (x => x.Txt_espec_papl)
.BulkUpdate ()
.MatchTargetOn (x => x.Txt_num_neg)
.MatchTargetOn (x => x.Id_usr)
.Commit (cone);
}
trans.Complete ();
}
}
最佳答案
当您的类中的属性名称与相应的数据库列之间存在差异时,将引发此异常。该库查询表模式,然后使用它来构建临时表,但如果列名和属性名不匹配,则临时表创建语句将失败,因为它无法指定正确的数据类型。
在这种情况下,如 library documentation 中所述,您必须通过提供列名来定义自定义映射,例如
.AddColumn(x => x.Id_usr, "Id")
https://stackoverflow.com/questions/62562474/