gpt4 book ai didi

automapper - 如何使用 AutoMapper 将 DataRow 映射到 WCF 服务中的对象?

转载 作者:行者123 更新时间:2023-12-02 21:05:01 30 4
gpt4 key购买 nike

我有一个 WCF 服务,它调用存储过程并返回 DataTable。我想在发送给消费者之前将 DataRows 转换为自定义对象,但不知道如何执行此操作。假设我从存储过程中检索了一位客户。为了简单起见,这里是通过 DataRow 的客户:

string lastName = dt.Rows[0]["LastName"].ToString();
string firstName = dt.Rows[0]["FirstName"].ToString();
string age = System.Convert.ToInt32(dt.Rows[0]["Age"].ToString());

我可以轻松地找回客户。现在,我创建了一个 Customer 对象,如下所示:

public Customer
{
public string LastName {get;set;}
public string FirstName {get;set;}
public int Age {get;set;}
}

我从包管理器控制台加载了 AutoMapper。然后我为我的客户添加了一个公共(public)静态方法,如下所示:

public static Customer Get(DataRow dr)
{
Mapper.CreateMap<DataRow, Customer>();
return Mapper.Map<DataRow, Customer>(dr);
}

当我单步执行代码时,从 Get() 返回的客户中的每个属性都为 null。我在这里缺少什么?我是否必须添加自定义扩展才能从 DataRow 进行映射?这是thread that seems related但我认为 AutoMapper 会开箱即用地支持这一点,特别是因为属性名称与列名称相同。提前致谢。

最佳答案

这有效!!

public static Customer GetSingle(DataTable dt)
{
if (dt.Rows.Count > 0) return null;

List<Customer> c = AutoMapper.Mapper.DynamicMap<IDataReader, List<Customer>>(dt.CreateDataReader());

return c[0];
}

关于automapper - 如何使用 AutoMapper 将 DataRow 映射到 WCF 服务中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16222313/

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