Dapper InsertAsync<T> 不插入记录
Dapper InsertAsync<T> not inserting records
这是我用来创建要安装到我的数据库 table 的对象的 POCO 的顶部,名为 "LOCITEMS":
[Table ("LOCITEMS")]
public class LOCITEMS :ICloneable
{
[ExplicitKey]
public string LOCATIONID { get; set; }
public string SITE_ID { get; set; }
[ExplicitKey]
public string ASCITEMID { get; set; }
public string ITEMID { get; set; }
[ExplicitKey]
public string SKIDID { get; set; }
public decimal QTYTOTAL { get; set; }
...
这是我用来将记录插入 table:
的代码
private async Task<bool>InsertNewLocItem(LOCITEMS item, IDbConnection conn, IDbTransaction trans )
{
if(item != null)
{
try
{
var x = await conn.InsertAsync<LOCITEMS>(item,trans);
return true;
}
catch (Exception ex)
{
return false;
}
}
else
{
return false;
}
}
当我检查 var x 时,它始终为 0,并且没有记录插入到我的 table 中。这是事务的一部分,事务正在提交,但记录没有显示。我根据其他建议在 table 的复合键列上添加了 "ExplicitKey",但我仍然没有得到插入,我也没有在 "catch" 中收到任何错误。我做错了什么?
我结束了 运行 来自 SSMS 的 SQL 跟踪并且能够拦截 sql 语句。深入研究这些语句,我发现其中一个 POCO 字段是一个字符串而不是 DateTime,这导致了问题。我更改了字段类型并重新 运行 它并插入了它。我不知道为什么它没有在不匹配时抛出错误。
这是我用来创建要安装到我的数据库 table 的对象的 POCO 的顶部,名为 "LOCITEMS":
[Table ("LOCITEMS")]
public class LOCITEMS :ICloneable
{
[ExplicitKey]
public string LOCATIONID { get; set; }
public string SITE_ID { get; set; }
[ExplicitKey]
public string ASCITEMID { get; set; }
public string ITEMID { get; set; }
[ExplicitKey]
public string SKIDID { get; set; }
public decimal QTYTOTAL { get; set; }
...
这是我用来将记录插入 table:
的代码private async Task<bool>InsertNewLocItem(LOCITEMS item, IDbConnection conn, IDbTransaction trans )
{
if(item != null)
{
try
{
var x = await conn.InsertAsync<LOCITEMS>(item,trans);
return true;
}
catch (Exception ex)
{
return false;
}
}
else
{
return false;
}
}
当我检查 var x 时,它始终为 0,并且没有记录插入到我的 table 中。这是事务的一部分,事务正在提交,但记录没有显示。我根据其他建议在 table 的复合键列上添加了 "ExplicitKey",但我仍然没有得到插入,我也没有在 "catch" 中收到任何错误。我做错了什么?
我结束了 运行 来自 SSMS 的 SQL 跟踪并且能够拦截 sql 语句。深入研究这些语句,我发现其中一个 POCO 字段是一个字符串而不是 DateTime,这导致了问题。我更改了字段类型并重新 运行 它并插入了它。我不知道为什么它没有在不匹配时抛出错误。