首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

LINQ to Entities 的有关问题 LINQ to Entities 不识别方法“System.String ToString()”,因此该方法无法转

2012-03-01 
LINQ to Entities 的问题 LINQ to Entities 不识别方法“System.String ToString()”,因此该方法无法转换为

LINQ to Entities 的问题 LINQ to Entities 不识别方法“System.String ToString()”,因此该方法无法转换为
用LINQ to Entities做组合查询的时候,用join做内连接。但是两个表关联的列的数据类型不一致。如:

 using (YyyseePortalEntities db = new YyyseePortalEntities())
{
  var temp= from A in db.Photo join B in db.Share on A.Content equals B.Id.ToString() select{......};

}

现在会报错:LINQ to Entities 不识别方法“System.String ToString()”,因此该方法无法转换为存储表达式。
由于Id列是guid类型。必须变成字符串才可以比较。可是转换后就会出错。

请问什么原因。应如何修改??

[解决办法]
var temp= from A in db.Photo join B in db.Share on A.Content equals B.Id select{......};

把.ToString() 去掉试试

[解决办法]
http://topic.csdn.net/u/20100714/12/9100ae62-1d04-4646-97b1-ae8856d7ff59.html
[解决办法]
在linq to entity语句里不能像LINQ TO SQL 那样使用非linq to entity方法,如Tostring(),Convert.toDatetime(),自定义的方法等等,最好的解决方案是在参数传进去前将参数处理好,如楼主再将B.Id.ToString() 传进去前先B.Id.ToString() 就可以了而不在linq to enttity语句中执行B.Id.ToString()
[解决办法]
var temp= from A in db.Photo join B in db.Share on A.Content equals B.Id.ToString() select{......};
=============

C# code
//你这样试试,我刚刚用我本地的数据测试是可以toString()查询出数据的 var temp= from A in db.Photo            from B in db.Share            where  System.Data.Linq.SqlClient.SqlMethods.Equals(A.Content,B.Id.ToString())           select{......};
[解决办法]
探讨
引用:
在linq to entity语句里不能像LINQ TO SQL 那样使用非linq to entity方法,如Tostring(),Convert.toDatetime(),自定义的方法等等,最好的解决方案是在参数传进去前将参数处理好,如楼主再将B.Id.ToString() 传进去前先B.Id.ToString() 就可以了而不在linq to en……

[解决办法]
string s = B.Id.ToString();
var temp= from A in db.Photo join B in db.Share on A.Content equals s select{......};

热点排行