Tôi đang sử dụng FastMember
để chuyển đổi List<T>
thành Datatable
. Một số lớp chứa enums và điều này gây ra vấn đề khi truyền các datatables dưới dạng TVP sang một thủ tục lưu sẵn.Làm thế nào để chuyển đổi enum thành int tự động qua FastMember?
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
chuyển đổi danh sách, tuy nhiên cột cho enum có DataType
của SomeEnum
. Khi đi qua các DataTable như một TVP, các ngoại lệ sau đây được ném:
ngoại lệ ném: 'System.ArgumentException' trong Dapper.dll
thông tin bổ sung: Các loại cột 'SomeEnum' không được hỗ trợ. Loại này là 'SomeEnum'
Có cách nào để buộc FastMember
chuyển đổi enums thành int không?
tôi đề xuất một danh hiệu chỉnh sửa, bởi vì câu hỏi có vẻ tầm thường và giống như một bản sao của http://stackoverflow.com/q/943398/ 3950370 –
Có thể giống như một cái gì đó không được hỗ trợ trong FastMember: https://github.com/mgravell/fast-member/issues/10 – Michael
Bạn có thể chỉ định loại vấn đề nào sử dụng enums gây ra? –