Linq to sql LINQSQL连接两个表

Linq to sql LINQSQL连接两个表,linq-to-sql,join,lambda,Linq To Sql,Join,Lambda,我试图根据model和manufacturer表中存在的两个值连接数据库中的两个表,由于各种原因,数据库中没有这些值的fk关系 到目前为止,我有以下几点: var modelManufacturer = DataContext.Assets_ND.Select(a => new {a.ModelNo, a.Manufacturer}).Distinct(); var masterPMs = DataContext.MasterPlannedMaintenances.Where(pm =&

我试图根据model和manufacturer表中存在的两个值连接数据库中的两个表,由于各种原因,数据库中没有这些值的fk关系

到目前为止,我有以下几点:

var modelManufacturer = DataContext.Assets_ND.Select(a => new {a.ModelNo, a.Manufacturer}).Distinct();

var masterPMs = DataContext.MasterPlannedMaintenances.Where(pm => pm.PlantId == model.PlantId);

var joined = modelManufacturer.Join(masterPMs.AsEnumerable(), a => new {a.ModelNo, a.Manufacturer},pm => new {pm.Model, pm.Manufacturer}, x => new {x.ModelNo, x.Manufacturer, x.Id});
这没有编译,并且有错误

错误7方法的类型参数无效 'System.Linq.Queryable.JoinSystem.Linq.IQueryable, System.Collections.Generic.IEnumerable, System.Linq.Expressions.Expression>,, System.Linq.Expressions.Expression>,, System.Linq.Expressions.Expression>' 无法从用法推断。尝试指定类型参数 明确地说

这就是我有点困惑的地方,关于如何指定值,我尝试了一些 但是intellisense似乎暗示这是不对的,或者至少我给他们的顺序不正确

我做错了什么,或者有什么更好的方法可以基于两个字符串字段连接这两个表,并从左表模型返回2个值,从右表id返回一个值

var joined = (from a in dc.table1
              join b in dc.table2 on a.id equals b.id into temp
              from t in temp.DefaultIfEmpty()
              select new {
                  a.Model,
                  a.Manufacturer,
                  t.ID
               });
这将在两个表上进行左连接,并仅从表1和表2中选择两个值