Linq 使用AutoMapper进行无外键的联接操作

Linq 使用AutoMapper进行无外键的联接操作,linq,join,automapper,Linq,Join,Automapper,我有db表: Company(CompanyId, Name, UserId, CompanyType, Uid) User(UserId, FirstName, LastName, SocialNumber) 在应用模型中: CompanyModel(CompanyId, Name, CompanyType, Uid, UserName) 由于CompanyModel和Company有许多相同的类型和名称字段,我倾向于使用AutoMapper来避免显式写入所有这些字段。 但现在我需要获取用

我有db表:

Company(CompanyId, Name, UserId, CompanyType, Uid)
User(UserId, FirstName, LastName, SocialNumber)
在应用模型中:

CompanyModel(CompanyId, Name, CompanyType, Uid, UserName)
由于CompanyModel和Company有许多相同的类型和名称字段,我倾向于使用AutoMapper来避免显式写入所有这些字段。 但现在我需要获取用户名。 如果UserId有FK,我就可以这样做:

var mapper = Mapper.CreateMap<Company,CompanyModel>();
mapper.ForMember(
    d => d.UserName, 
    s => s.MapFrom(a => a.User.FirstName + " " + a.User.LastName));
var q = companyQuery.Project().To<CompanyModel>();
我想知道是否有任何方法可以做到这一点与AutoMapper,以及如何?所以我可以跳过命名所有字段(这只是示例,还有更多字段)

有人熟悉这一点吗?

我这里有一个解释:
var r =
from c in companyQuery
join u in userQuery on c.UserId equals u.UserId
select new CompanyModel
{
     CompanyId = c.CompanyId,
     Name = c.Name,
     CompenyType = c.CompanyType,
     Uid = c.Uid,
     UserName = u.FirstName + " " + u.LastName
};