gpt4 book ai didi

c# - PetaPoco 将逗号分隔的字符串映射到字符串列表

转载 作者:行者123 更新时间:2023-11-30 20:58:00 25 4
gpt4 key购买 nike

在数据库中,我有一个,它包含逗号分隔值,如下所示:

Foo.Bars varchar(100): @;1,5

在代码中,DTO 包含一个列表 ,如下所示:

public class Foo { public List<string> Bars {get; set;} }

我希望 PetaPoco 为我进行转换

我读过有关IMapper 接口(interface)的内容,但找不到如何使用它的示例。
我怎样才能达到想要的结果?

最佳答案

这是我认为的解决方案:

public class ListMapper : IMapper 
{
public void GetTableInfo(Type t, TableInfo ti)
{
}

public bool MapPropertyToColumn(PropertyInfo pi, ref string columnName, ref bool resultColumn)
{
return true;
}

public Func<object, object> GetFromDbConverter(PropertyInfo pi, Type sourceType)
{
return src =>
{
if (sourceType == typeof (string)
&& pi.PropertyType == typeof (List<string>)
&& src != null)
{
return ((string) src).Split(';').ToList();
}
return src;
};
}

public Func<object, object> GetToDbConverter(Type sourceType)
{
return null;
}
}

Database.Mapper = new ListMapper(); // Mapper is a static property

关于c# - PetaPoco 将逗号分隔的字符串映射到字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16398763/

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