我有db TABLES:
Company(CompanyId, Name, UserId, CompanyType, Uid)
User(UserId, FirstName, LastName, SocialNumber)
在应用程序MODEL:
CompanyModel(CompanyId, Name, CompanyType, Uid, UserName)
由于 CompanyModel 和 Company 有许多相同的类型和名称字段,因此我倾向于使用AutoMapper来避免明确写出所有这些字段。 但在这里我现在需要获得UserName。 如果 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>();
但公司表中的 UserId 没有外键关系约束用户,我无法创建它。 所以目前我正在加入:
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
};
我想知道是否有任何方法可以使用AutoMapper,以及如何做到这一点?所以我可以跳过命名所有字段(这只是示例,还有更多的字段)。
有人熟悉这个吗?