gpt4 book ai didi

c# - Dapper 对象加上上下文

转载 作者:太空宇宙 更新时间:2023-11-03 15:00:00 25 4
gpt4 key购买 nike

代码:

   class ComplicatedObject {
public int? TaskTypeId { get; set; }
public int?[] CountTypeIds { get; set; }
public int?[] EquipmentTypeIds { get; set; }
public int? TaskBlockId { get; set; }
public int? TeamId { get; set; }
public string DriverId { get; set; }
public int? TaskStatusId { get; set; }
public string EventType { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public string County { get; set; }
public string Tag { get; set; }
}

目前我在做:

            var param = new
{
Id = id,
TaskTypeId = complicatedObjectInstance.TaskTypeId,
CountTypeIds = complicatedObjectInstance.CountTypeIds,
EquipmentTypeIds = complicatedObjectInstance.EquipmentTypeIds,
TaskBlockId = complicatedObjectInstance.TaskBlockId,
TeamId = complicatedObjectInstance.TeamId,
DriverId = complicatedObjectInstance.DriverId,
TaskStatusId = complicatedObjectInstance.TaskStatusId,
EventType = complicatedObjectInstance.EventType,
StartDate = complicatedObjectInstance.StartDate,
EndDate = complicatedObjectInstance.EndDate,
County = complicatedObjectInstance.County,
Tags = complicatedObjectInstance.Tag
};
ExecuteQuery(sql, params)

dapper 获取的对象基本上只是 Id 加上 ComplicatedObject。

我想做类似的事情

ExecuteQuery(sql, new { Id = id, complicatedObjectInstance})

最佳答案

您可以将您的对象转换为字典,然后向其添加额外的 Prop 。

public static class ObjectExtensions
{
public static IDictionary<string, object> ToDictionary(this object value)
{
return TypeDescriptor.GetProperties(value.GetType()).Cast<PropertyDescriptor>().ToDictionary(property => property.Name, property => property.GetValue(value));
}
}

[Test]
public void TestDictionary()
{
var param = new TestClass { Bar = "Bar", Foo = "Foo" }.ToDictionary();
param.Add("Id", 99);

using (
var conn = new SqlConnection(@"Data Source=.\sqlexpress;Integrated Security=true; Initial Catalog=foo"))
{
var result = conn.Query("select Foo = @Foo, Id = @Id", param).First();
Assert.That(result.Id, Is.EqualTo(99));
}
}

关于c# - Dapper 对象加上上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46674884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com