我有两个具有一对多关系的实体,我正在尝试在子项中选择主实体过滤属性。
例如:
public class Pedido
{
public int Id { get; set; }
public string Descricao { get; set; }
public virtual ICollection<PedidoItem> Itens { get; set; }
}
public class PedidoItem
{
public int Id { get; set; }
public int PedidoId { get; set; }
public Pedido Pedido { get; set; }
public string Descricao { get; set; }
public int Status { get; set; }
}
public class DataInit : DropCreateDatabaseAlways<Data>
{
protected override void Seed(Data context)
{
context.Pedidos.Add(new Pedido {
Descricao = "PEDIDO UM",
Itens = new List<PedidoItem> {
new PedidoItem {
Descricao = "ITEM UM",
Status = 0 },
new PedidoItem{
Descricao = "ITEM DOIS",
Status = 0 },
new PedidoItem{
Descricao = "ITEM TRES",
Status = 0 },
new PedidoItem{
Descricao = "ITEM QUATRO",
Status = 1 }
}
});
context.SaveChanges();
base.Seed(context);
}
public DataInit()
{
}
}
public class Data : DbContext
{
public DbSet<Pedido> Pedidos { get; set; }
public Data()
{
Database.SetInitializer(new DataInit());
}
}
class Program
{
static void Main(string[] args)
{
Data dt = new Data();
var pedidos = from ped in dt.Pedidos
where ped.Itens.Any(item => item.Status == 1)
select ped;
var lista = pedidos.ToList();
}
}
我在数据库中只有一个 Pedido 实体和一个状态 = 1 的项目,我只想返回集合中状态 = 1 的项目,我该怎么办?
我想返回仅包含一项已过滤的 Pedido 实体(item.Status == 1)