我正在尝试根据两个表(模型和制造商)中存在的两个值来连接我的数据库中的两个表,由于各种原因,这些值在数据库中没有 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.Join(System.Linq.IQueryable, System.Collections.Generic.IEnumerable, System.Linq.Expressions.Expression>, System.Linq.Expressions.Expression>, System. Linq.Expressions.Expression>)' 不能从用法中推断出来。尝试明确指定类型参数。
这就是我对如何指定值有点困惑的地方,我尝试了一些组合,
modelManufacturer.Join<Asset, MasterPlannedMaintenance....>
但智能感知似乎表明这是不对的,或者至少我放入它们的顺序不正确。
我做错了什么,或者基于两个字符串字段连接这两个表并从左表(型号,制造商)返回 2 个值,从右表(id)返回一个值的更好方法是什么。