在 Linq C# 中获取链接的对象值
Get linked Object values in Linq C#
我下面有一行table。
Table 1: 用户
用户 ID、电子邮件、.....
Table 2: 用户配置文件
ProfileId, UserId,ProfileName,....
FK 在 Users.UserId --> UserProfile.UserId
当我获得如下数据时..它仅检索用户对象值only.I还需要获取用户配置文件对象值。
var returnObj = _context.Users.Where(x => x.UserId == userId).FirstOrDefault();
var returnData = _entityMapper.Map<Users, UsersDTO>(returnObj);
如果您使用的是 EF Core,请阅读 the documentation surrounding loading related data
如果您使用的是 EF 6,请阅读 the documentation surrounding loading related data
LINQ-to-SQL 现在真的很老了(它在 10 年前就已经死了)并且是一个过时的产品。如果你确实在使用它,Google for "LINQ to sql loading related data"
按如下方式设计用户和用户配置文件类:
public class User
{
public int Id { get; set; }
public string Email { get; set; }
public UserProfile UserProfile { get; set; }
}
public class UserProfile
{
public int Id { get; set; }
public string ProfileName { get; set; }
public int UserId { get; set; }
public User User { get; set; }
}
它们是一对一相关的实体,所以
modelBuilder.Entity<User>()
.HasOne(_ => _.UserProfile)
.WithOne(_ => _.User);
最后,加载您的数据:
var result = _context.Users.Include( _ => _.UserProfile).Select( _ => new
{
Email = _.Email,
ProfileName = _.UserProfile.ProfileName,
}
).ToList();
这是基于 EF Core
我下面有一行table。
Table 1: 用户
用户 ID、电子邮件、.....
Table 2: 用户配置文件
ProfileId, UserId,ProfileName,....
FK 在 Users.UserId --> UserProfile.UserId
当我获得如下数据时..它仅检索用户对象值only.I还需要获取用户配置文件对象值。
var returnObj = _context.Users.Where(x => x.UserId == userId).FirstOrDefault();
var returnData = _entityMapper.Map<Users, UsersDTO>(returnObj);
如果您使用的是 EF Core,请阅读 the documentation surrounding loading related data
如果您使用的是 EF 6,请阅读 the documentation surrounding loading related data
LINQ-to-SQL 现在真的很老了(它在 10 年前就已经死了)并且是一个过时的产品。如果你确实在使用它,Google for "LINQ to sql loading related data"
按如下方式设计用户和用户配置文件类:
public class User
{
public int Id { get; set; }
public string Email { get; set; }
public UserProfile UserProfile { get; set; }
}
public class UserProfile
{
public int Id { get; set; }
public string ProfileName { get; set; }
public int UserId { get; set; }
public User User { get; set; }
}
它们是一对一相关的实体,所以
modelBuilder.Entity<User>()
.HasOne(_ => _.UserProfile)
.WithOne(_ => _.User);
最后,加载您的数据:
var result = _context.Users.Include( _ => _.UserProfile).Select( _ => new
{
Email = _.Email,
ProfileName = _.UserProfile.ProfileName,
}
).ToList();
这是基于 EF Core