【发布时间】:2018-05-28 13:16:56
【问题描述】:
以下查询返回一些用于单元测试的模拟数据。
var colorsList = (IEnumerable<dynamic>)colorsRepository.GetColorsList().Result;
它以动态对象的形式给出结果
我只想获得MainTypeCode 值。但它显示 object' 不包含 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();
}
【问题讨论】:
-
你不应该使用
Task.Result。使用await colorsRepository.GetColorsList()或colorsRepository.GetColorsList().GetAwaiter().GetResult() -
你们能告诉我吗。如何为该查询安排一个虚拟数据?
-
@如何为这个
GetColorsList()方法设置模拟数据? -
我认为您必须使用反射才能获得动态属性。
-
如果
colorsList真的是IEnumerable<dynamic>-colorsList.Select(cl => cl.MainTypeCode)应该可以正常工作并且不会产生任何编译时错误。