--User。post nvarchar(20) -- News.id int --先来看一下这个SQL语句 SELECT u.post,n.id, FROM User u ,News n WHERE u.post=CAST(n.id AS nvarchar) 用linq我们首先想到的是这样写: var q = from u in db.Users from n in db.News where u.post==n.id.ToString() //这样肯定 不行,编译都通不过,不同类型的两字段 select u; //这样写就可以使用toString()了 var q = from u in db.Users from n in db.News where System.Data.Linq.SqlClient.SqlMethods.Equals(u.post,n.id.ToString()) select u; 在LINQ 2 EF 里,可以用这个类下边的方法来实现: System.Data.Objects.EntityFunctions