我正在尝试使用单个视图模型查询多个表。这是我的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无效。这些表已经在生产中运行。我需要在代码中覆盖。我该怎么做
答案 0 :(得分:1)
如果列的类型相同,您的错误将得到解决,而不是更改列类型,您可以将较小的类型转换为更大的类型,因此请勿更改C_No
的类型sDTO
1}}类并将您的查询更改为此
select top 1 ... , cast (a.C_No as bigint) as C_No, ...