public class Parent {
public int Id { get; set; }
public string Name { get; set; }
public Child ChildField { get; set; }
}
public class Child {
public int Id { get; set; }
public int Age { get; set; }
public int ParentId { get; set; }
}
public class MyDbContext : DbContext {
public DbSet<Parent> Parents { get; set; }
public DbSet<Child> Childs { get; set; }
}
DB Rows:
parent_id | name
1 "Parent 1"
2 "Parent 2"
Child Rows
child_id | age | parent_id
3 15 1
4 21 2
我有一个看起来像这样的方法:实体框架加载子与父母
public Parent Get(int parentId) {
var result = this.dbContext.Parents
.Join(
this.dbContext.Childs,
p => p.Id,
c => c.ParentId,
(p, c) => new { Parent = p, Child = c })
.AsNoTracking().Where(m => m.Parent.Id == parentId)
.FirstOrDefault()
result.Parent.Child = result.Child;
return result.Parent;
}
目前这个工作对我来说,但我想不会有孩子手动分配到父母加入后。
- 有没有更好的方法来做到这一点?我想使用相同的语法风格。
- 如何在不必手动将孩子分配给父母的情况下完成此操作?
谢谢!
这是代码优先? – 2014-11-07 03:45:07
这不是代码第一。 – 2014-11-07 14:41:06