Linq to sql 使用Linq连接两个唯一标识符

Linq to sql 使用Linq连接两个唯一标识符,linq-to-sql,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 == Merchan

我想我已经看过了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>();
var s=(来自db.aspnet\u成员身份中的d
在d.aspnet_用户等于u.aspnet_用户ID的情况下加入db.Merchants
其中u.MerchantID==MerchantID
选择d.IsApproved).SingleOrDefault();
我在join上遇到以下错误“join子句中某个表达式的类型不正确。调用“join”时类型推断失败。”


感谢您的帮助。

看起来您试图加入错误的活动。aspnet_用户不是一个表吗

尝试:

var s=(来自db.aspnet\u成员身份中的d
在d.UserId等于u.aspnet\u UserId的情况下加入到db.Merchants中
其中u.MerchantID==MerchantID
选择d.IsApproved).SingleOrDefault();
或:

var s=(来自db.aspnet\u成员身份中的d
在d.aspnet\u User.UserId等于u.aspnet\u UserId的数据库中加入u
其中u.MerchantID==MerchantID
选择d.IsApproved).SingleOrDefault();

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

你是对的,它是UserId,它不喜欢SingleOrDefault。非常感谢。
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>();