导致指定强制转换的多个表的ViewModel无效

时间:2015-02-16 08:38:57

标签: c# linq

我正在尝试使用单个视图模型查询多个表。这是我的ViewModel

class sDTO
{
    public long c_id { get; set; }
    public string Exp { get; set; }
    public int B_Code { get; set; }

    public int C_No { get; set; }
    public int PickUp { get; set; }
    public string C_Name { get; set; }
    public string Email { get; set; }
    public int C_Code { get; set; }
    public int L_Code { get; set; }
    public int S_code { get; set; }
}

我有一个查询,列出要从中挑选的所有表并循环遍历表

var cQuery = string.Format(@"select top 1 a.c_id, a.Exp, a.B_Code, a.C_No, a.PickUp, c.C_Name , b.C_Code, b.L_Code, b.S_code,
                             c.Email from cards{0} a inner join hloding c on c.c_id = a.C_id 
                             inner join cAcs{0} b on b._id = a._id
                                    ", items); 
                using (eServiceContext _db2 = new eServiceContext())
                {
                    var res = _db2.ExecuteQuery<sDTO>(cQuery).AsEnumerable();

我发现某些表中的C_No是int,有些是bigint。因此,Error Specified Cast无效。这些表已经在生产中运行。我需要在代码中覆盖。我该怎么做

1 个答案:

答案 0 :(得分:1)

如果列的类型相同,您的错误将得到解决,而不是更改列类型,您可以将较小的类型转换为更大的类型,因此请勿更改C_No的类型sDTO 1}}类并将您的查询更改为此

select top 1 ... , cast (a.C_No as bigint) as C_No, ...