SqlQuery的一般用法如下:
public class A
{
public int a{ get; set; }
public int b{ get; set; }
}
List<A> reault = Database.SqlQuery<A>(sql, sql_parameters).ToList();
现在我想填充更复杂的对象B,该怎么修改?
希望调用以下语句可以实现填充
List<B> reault = Database.SqlQuery<B>(sql, sql_parameters).ToList();
public class B
{
public A a{ get; set; }
public int c{ get; set; }
}
以前也遇到过这个问题,最后是使用了 https://www.pa-roy.com/raw-sq... 描述的实现方法,其本质是在内部打开连接,使用 AutoMapper.Data 库将 IDataReader/IDataRecord 映射到为自定义对象。使用这个方法要注意你的 class B 有复杂类型 A,需要自定义一下映射配置,可以查一下 AutoMapper内嵌类型配置方法 和 AutoMapper.Data 的文档。
另外efcore5.0有 https://docs.microsoft.com/en... 也可以参考一下。