MySql Linq to SQL将int转换为string

时间:2014-02-27 10:17:42

标签: c# linq-to-sql linq-to-mysql

您好我有一个MySQL和LINQ to SQL任务将Int值从DB转换为String, MySql不支持toString(),我收到错误。

var data = (from o in ObjectContext.MyTable.Where(d => d.a == a)
                              select new MyObject
                              {
                                  Id = o.Id,
                                  StringProperty = o.intColumn.ToString()
                              });

SqlFunction类不支持MySql。

3 个答案:

答案 0 :(得分:1)

您可以尝试将结果转换为Enumerable,然后在其上进行查询:

var data = (from o in ObjectContext.MyTable.AsEnumerable().Where(d => d.a == a)
                              select new MyObject
                              {
                                  Id = o.Id,
                                  StringProperty = o.intColumn.ToString()
                              });

答案 1 :(得分:0)

您可以通过向表中添加AsEnumerable()来获取所有数据,或者您可以先进行提取,然后再进行转换 - 如果我没有弄错,这应该会产生稍微轻松的SQL调用:< / p>

var tempData = (from o in ObjectContext.Where(d => d.a == a) select o);

var converted = (from o in tempData.AsEnumerable()
                select new MyObject
                          {
                              Id = o.Id,
                              StringProperty = o.intColumn.ToString()
                          });

或者,通过将第一部分用作子查询,将其全部写在一起:

var data = from x in 
                  (from o in ObjectContext.Where(d => d.a == a) select o)
                  .AsEnumerable()
           select new MyObject
                           {
                              Id = x.Id,
                              StringProperty = x.intColumn.ToString()
                          });

答案 2 :(得分:0)

int to string in Entity Framework 也支持你可以参考的一个很好的解决方案。通过这种方法,您可以将源更改为以下内容。

var data = (from o in ObjectContext.MyTable.Where(d => d.a == a)
                          select new MyObject
                          {
                              Id = o.Id,
                              StringProperty = SqlFunctions.StringConvert((double)o.intColumn)
                          });