以下查询返回一些用于单元测试的模拟数据。
var colorsList = (IEnumerable<dynamic>)colorsRepository.GetColorsList().Result;
它将结果作为动态对象
我只想获得MainTypeCode
值。但它显示对象&#39;不包含MainTypeCode
colorsList.Select(cl => (dynamic)cl.MainTypeCode);
让我知道如何安排虚拟/模拟动态数据来执行查询?
并且colorsRepository.GetColorsList().Result;
正在返回。我应该更改模拟数据来运行查询吗?
public static IEnumerable<dynamic> GetColorsList()
{
List<dynamic> colours = new List<dynamic>();
for (int i = 0; i < 1; i++)
{
colours.Add((dynamic)new
{
MainTypeCode = 1,
DoorCode = "001"
});
}
return colours.AsEnumerable();
}
答案 0 :(得分:0)
可悲的是,我有很多时间来详细说明一个更好的答案,但你必须使用反射才能获得动态属性。
如果您事先知道动态属性,可以尝试创建一个类并使用反射创建一个Map方法来获取该对象。
答案 1 :(得分:0)
我猜,问题可能与动态有关。你可以试试下面这样的东西吗?
var colorLists = new [] { new {DoorCode = "001", MainTypeCode = 1}, new {DoorCode = "002", MainTypeCode = 2}};
var mainTypeCodes = colorLists.Select(cl => cl.GetType().GetProperty("MainTypeCode").GetValue(cl, null));