zoukankan      html  css  js  c++  java
  • C# Unable to translate set operation when matching columns on both sides have different store types

    运行程序时候,错误提示为:

    Unable to translate set operation when matching columns on both sides have different store types
    

    原因:

    数据库查下使用 Union 方法时候,前后两个查询的字段类型不一致导致的
    例如代码:

    var list = (from d in ctx.Employee
                   select new
                     {
                        d.Id,
                        AmountOfMoney = 0,
                      }).Union(from v in ctx.Product
                            select new
                             {
                                v.Id,
                                d.AmountOfMoney,
                              }
               );
    

    错误解读:
    Employee表中没有AmountOfMoney 字段,我们给定一个默认值0,系统默认是int类型
    Product表中 AmountOfMoney 是decimal类型
    此时编译就会报错了,我们给Employee 的字段加一个强制转换类型,如下

    var list = (from d in ctx.Employee
                   select new
                     {
                        d.Id,
                        AmountOfMoney = (decimal)0,
                        //或者 AmountOfMoney = 0M,
                      }).Union(from v in ctx.Product
                            select new
                             {
                                v.Id,
                                d.AmountOfMoney,
                              }
               );
    

    结果依然报错,可能最新语法不支持这种写法了

  • 相关阅读:
    软件工程实践总结-黄紫仪
    beta冲刺总结附(分工)-咸鱼
    beta冲刺总结-咸鱼
    beta冲刺7-咸鱼
    beta冲刺用户测评-咸鱼
    beta冲刺6-咸鱼
    beta冲刺5-咸鱼
    beta冲刺4-咸鱼
    beta冲刺3-咸鱼
    beta冲刺2-咸鱼
  • 原文地址:https://www.cnblogs.com/qingheshiguang/p/15547689.html
Copyright © 2011-2022 走看看