【问题标题】:Dapper InsertAsync<T> not inserting recordsDapper InsertAsync<T> 不插入记录
【发布时间】:2020-02-25 04:43:47
【问题描述】:

这是我用来创建要安装到名为“LOCITEMS”的数据库表中的对象的 POCO 的顶部:

[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; }
    ...

这是我用来将记录插入该表的代码:

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,并且没有记录插入到我的表中。这是事务的一部分,事务正在提交,但记录未显示。我根据其他建议在表的复合键列上添加了“ExplicitKey”,但我仍然没有得到插入,也没有在“catch”中得到任何错误。我做错了什么?

【问题讨论】:

标签: dapper dapper-extensions


【解决方案1】:

我最终从 SSMS 运行 SQL 跟踪并能够拦截 sql 语句。深入研究语句,我发现其中一个 POCO 字段是字符串而不是 DateTime 并且导致了问题。我更改了字段类型并重新运行它并插入了它。我不知道为什么它没有在不匹配时引发错误。

【讨论】:

    猜你喜欢
    • 2017-05-13
    • 1970-01-01
    • 2010-11-05
    • 2016-05-25
    • 2011-09-17
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多