有史以来的第一个问题:)
我是使用 Insight.Database 库的新手,但我认为我以正确的方式使用它。我正在同一解决方案中另一个项目的 XUnit 测试中运行下面的(简化的)代码。异常与 connTran.Insert 一起抛出,如果我中断 CATCH 块中的日志记录功能并查看异常中的消息,它会给出错误错误CS7069: Reference to type 'DbConnectionWrapper' claims it is defined in 'Insight.Database', but it could not be found
,但调试器也会中断 connTran .Rollback() 与A transaction has not been created for this connection
.
奇怪的是,我在同一个解决方案和测试项目的另一个测试中使用了相同的代码,但使用的是平面实体,并且运行良好。
我正在使用 Visual Studio 2015 企业版。调试器也不能正常运行——在事务“内部”时悬停在变量等上不起作用。我在这里的 Github 上发现了一个非常相似的 github 问题,但没有我可以使用的解决方案。
这是我正在使用的插入代码 - 我也尝试过 connTran.Insert 但我得到了相同的结果。
DbConnectionWrapper connTran = null;
try
{
using (connTran = _dbconnection.OpenWithTransaction())
{
var lookupHeader = connTran.QueryResults<Results>("usp_Lookup_InsertHeader", entity);
connTran.Commit();
}
}
catch(Exception ex)
{
logException(ex.Message);
connTran.Rollback();
throw;
}
实体对象如下所示:
public class LookupEntity
{
[RecordId]
public int LookupHeaderId { get; set; }
public string LookupHeaderName { get; set; }
public string LookupHeaderDescription { get; set; }
public string LookupHeaderCategory { get; set; }
public string LookupHeaderType { get; set; }
public string LookupBPMObjectName { get; set; }
public string LookupBPMMethodName { get; set; }
public string LookupBPMInputParams { get; set; }
public string LookupBPMExtraParams { get; set; }
public string LookupBPMOutputDataSetName { get; set; }
public string LookupBPMOutputNameNode { get; set; }
public string LookupBPMOutputValueNode { get; set; }
public string LookupBPMOutputActiveNode { get; set; }
public int Active { get; set; }
public int Cache { get; set; }
public int CsysLastUpdateBy { get; set; }
public DateTime? CsysLastUpdateDate { get; set; }
public int CsysInsertBy { get; set; }
public DateTime? CsysInsertDate { get; set; }
public string CsysTimeStamp { get; set; }
public string CsysTag { get; set; }
public int CsysOwnerId { get; set; }
public string CsysOwnerType { get; set; }
public int CsysRecordStatus { get; set; }
[ChildRecords]
public List<LookupDetail> LookupDetails { get; set; }
}