我正在使律师简单的应用程序来计算代理人佣金 我们有两类代理商
我正在使用asp.net身份,这是创建这种关系的最佳实践,该关系是将应用程序用户类型的名为Parent的文件添加为应用程序用户类中的集合
public virtual ICollection<ApplicationUser> Parent { get; set; }
然后创建关系。
modelBuilder.Entity<ApplicationUser>()
.HasMany(u => u.Parent)
.WithMany()
.Map(m =>
{
m.MapLeftKey("Id");
m.MapRightKey("ParentId");
m.ToTable("User_Parent");
});
现在我可以获得代理人的父母,但是我试图让父母作为孩子的父母,但是找不到最佳做法
public ActionResult ViewAgent(string Id)
{
//Get selected agent with related data
var Agent = _context.Users.Single(c => c.Id == Id);
_context.Entry(user).Collection(u => u.Clients).Load();
_context.Entry(user).Collection(u => u.Parent).Load();
foreach (var item in user.Clients)
{
_context.Entry(item).Collection(c => c.Case).Load();
foreach (var charge in item.Case)
{
_context.Entry(charge).Collection(c => c.CaseCharge).Load();
}
}
//select agent Child's of agent with related data
// How can i query it ?? an error here but i am looking around
var childs= _context.Users.Where(u=>u.Parent.Select(p=>p.Id==Id))
return View(user);
}
我希望以父项的身份查询上面的绕过Agent的新查询,然后我可以将子项列入列表
答案 0 :(得分:0)
如果您希望所有用户都具有相同的父级,请尝试:
var usersWithParent = _context.Users.Where(u => u.Parents.Any(p => p.Id == myParentId)).ToList();
此外,请参阅我有关立即加载所有收藏集的评论。