【发布时间】:2021-05-04 14:36:55
【问题描述】:
我目前有这个列表
public static List<Tablea> AllTablesList()
{
using (var context = new EFContext())
{
return context.Tableas
.Include(p => p.Tablebs)
.ToList();
}
}
我想使用 Tableb 中所述的 ICollection 进行扩展,它使用表 C 中的数据。但是该列表继承自 Tablea,因此我尝试对 tablec 的所有引用都失败了。
public class Tablea : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public int TableaID { get; set; }
public string Name { get; set; }
public virtual ICollection<Tableb> Tablebs { get; set; }
}
public class Tableb : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public int TablebID { get; set; }
public string Name { get; set; }
public int TableaID { get; set; }
public Tablea Tablea { get; set; }
public virtual ICollection<Tablec> Tablecs { get; set; }
将集合包含在 tableb 中的最佳方式是什么?
【问题讨论】:
-
.Select(p => p)的目的是什么?去掉返回值有什么问题? -
@mm8 似乎是我的复制/粘贴错误,感谢您指出。删除它并相应地编辑了帖子
-
目前还不清楚问题是什么。究竟是什么“失败”以及如何?
-
所有
Tablea实体都在context.Tableas中,不是吗?那么您缺少哪些实体? -
@mm8 TableC 是它自己的实体。我要创建的列表需要来自 A 的数据,该数据在 B 中有子实体,而 B 在 C 中有子实体。该列表基于 A 并且可以使用 B 中的数据。但是我似乎无法扩展列表以包含C 也是如此,因为列表的基础仍在 A 中。我想知道实现这一目标的最佳方法是什么
标签: c# entity-framework linq