代码之家  ›  专栏  ›  技术社区  ›  Makla

使用System.Linq.Dynamic.Core将结果强制转换为自定义类

  •  0
  • Makla  · 技术社区  · 6 年前

    我正在尝试将结果类型转换为自定义类 System.Linq.Dynamic.Core 但我有个例外:

    System.InvalidCastException:'无法强制转换类型的对象

    我的代码是:

    class MyClass
    {
        public int LangId { get; set; }
        public int GroupId { get; set; }
    }
    
    var fields = "new(LangId AS LangId,TranslateId AS GroupId)";
    context.Table.Select(fields).ToDynamicListAsync<MyClass>();
    

    ToDynamicListAsync 或者我在其他地方的代码中有另一个错误?

    我能做到吗(排版 dynamic[] 结果到 custom_object[]

    2 回复  |  直到 6 年前
        1
  •  1
  •   Makla    6 年前

    我想你也可以用这个代码?

    var rows = await context.Table.Select<MyClass>(fields).ToDynamicListAsync<MyClass>();
    

    此扩展方法也在中定义 DynamicQueryableExtensions.cs

        2
  •  0
  •   Makla    6 年前

    我试着用思考做一些奇怪的事情,然后我偶然发现了解决办法:

    var rows = await context.Table.Select(typeof(MyClass), fields).ToDynamicListAsync<MyClass>();
    

    希望它能帮助别人。