gpt4 book ai didi

c# - 如何通过 FastMember 自动将枚举转换为 int?

转载 作者:太空狗 更新时间:2023-10-29 23:36:45 25 4
gpt4 key购买 nike

我正在使用 FastMember转换 List<T>Datatable .一些类包含枚举,这在将数据表作为 TVP 传递给存储过程时会导致问题。

public class MyObject
{
public int Id {get; set;}
public SomeEnum EnumHere {get; set;}
}

var dt = new DataTable();
using (var reader = ObjectReader.Create(myObjectsList))
{
dt.Load(reader);
}

db.Execute<ResultObject>("insert_objects", new { dt }, commandType: CommandType.StoredProcedure);

FastMember转换列表,但是枚举的列有一个 DataTypeSomeEnum .将数据表作为 TVP 传递时,抛出以下异常:

Exception thrown: 'System.ArgumentException' in Dapper.dll

Additional information: The type of column 'SomeEnum' is not supported. The type is 'SomeEnum'

有没有办法强制FastMember将枚举转换为 int?

最佳答案

您可以创建具有正确属性的匿名类型:

var newObjects = from m in myObjectList
select new { m.Id, EnumHere = (int)m.EnumHere };

var dt = new DataTable();
using (var reader = ObjectReader.Create(newObjects))
{
dt.Load(reader);
}

关于c# - 如何通过 FastMember 自动将枚举转换为 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41565074/

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