您好我有一个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。
答案 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)
});