使用Linq加入两个uniqueidentifier

时间:2013-03-22 16:17:08

标签: linq-to-sql

我想我已经浏览了stackoverflow上的每个例子,而且我遗漏了一些问题的根本原因。

我正在尝试加入两个类型为“uniqueidentifier”的字段。

以下是我的代码:

   var s = (from d in db.aspnet_Memberships 
            join u in db.Merchants on d.aspnet_User equals u.aspnet_UserID  
            where u.MerchantID == MerchantID 
            select d.IsApproved).SingleOrDefault<System.String>();

我在连接上遇到以下错误“join子句中某个表达式的类型不正确。在对'Join'的调用中类型推断失败。”

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

看起来你正试图加入错误的东西。 aspnet_User不是一张桌子吗?

尝试:

var s = (from d in db.aspnet_Memberships 
         join u in db.Merchants on d.UserId equals u.aspnet_UserID  
         where u.MerchantID == MerchantID 
         select d.IsApproved).SingleOrDefault<System.String>();

或者:

var s = (from d in db.aspnet_Memberships 
         join u in db.Merchants on d.aspnet_User.UserId equals u.aspnet_UserID  
         where u.MerchantID == MerchantID 
         select d.IsApproved).SingleOrDefault<System.String>();

另外,我不认为.SingleOrDefault会起作用,查询正在选择一个bool。