Linq 使用AutoMapper进行无外键的联接操作
我有db表: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来避免显式写入所有这些字段。 但现在我需要获取用
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
};