我正在使用 Dapper 而不是 Entity Framework。尝试使用嵌套对象作为查询参数时遇到错误。
错误如下所示:
App.Model.Device 类型的 Device 成员不能作为参数值。
如果有什么我可以改进我的问题结构的地方,请发表评论。不要猛击。谢谢
我的课程看起来像这样:
public class RootObject
{
public List<Datum> data { get; set; }
}
public class Datum
{
public Device device { get; set; }
public long time { get; set; }
public string data { get; set; }
}
public class Device
{
public string id { get; set; }
}
和一个看起来像这样的 SQL 插入查询:
private const string InsertQuery = @"Insert into iot.[Table] (DeviceID,DeviceData,UnixTime) values(@device.id,@data,@time)";
小巧玲珑的插入功能:
public CreateCommand(List<Datum> Datums)
{
_Datums = Datums;
}
public void Execute()
{
Insert();
}
private void Insert()
{
using (var connection = DatabaseConfiguration.SqlServer())
{
using (var transaction = connection.BeginTransaction())
{
try
{
connection.Execute(InsertQuery, _Datums, transaction);
transaction.Commit();
}
catch (Exception)
{
transaction.Rollback();
throw;
}
}
}
}