【发布时间】:2017-04-04 07:54:52
【问题描述】:
我在为我的 LINQ 查询中包含的项目添加一些过滤条件时遇到了一些困难。我的查询是这样的
var item = _Context.Order.Include("Inner")
.Include("Inner.first")
.Include("Inner.second")
.Where(x => ( !(x.IsDeleted) && (x.IsActive) &&
(x.itemid == id))).FirstOrDefault();
在上面的代码中,“Inner”是另一个项目列表。现在我需要过滤内部项目。我只需要过滤条件为 inner.isDeleted = true 的内部项目。
查询应该返回一个类似的类,
public class Order
{
public string Name { get; set; }
public List<InnerDetails> Inner{ get; set; }
public bool IsDeleted { get; set; }
}
和 InnerDetails 类类似
public class InnerDetails
{
public string Sample { get; set; }
public bool IsDeleted { get; set; }
public int firstId { get; set; }
public int secondID { get; set; }
public First first{ get; set; }
public Second second{ get; set; }
}
由于我是 LINQ 和 EF 的新手,任何人都可以建议我更好的方法吗?
【问题讨论】:
-
您到底想过滤什么 - 您是想仅包含 order.inner.isdeleted 的 order.inner 中的条目,还是要删除整个记录,例如整行订单那不符合条件?如果是第二个,如果你在 order.inner 中有 2 个条目,一个是 isDeleted = true,一个是 isDeleted - false
-
@Alex:我在问题中提到'我只需要带有过滤条件的内部项目inner.isDeleted = true。',即我只需要包含已删除的内部记录(inner.isDeleted = true) .这仅用于内部记录,这不会影响外部记录。
-
您似乎正在尝试过滤嵌套列表。我认为这个问题可以帮助你stackoverflow.com/questions/25183685/… 和这个stackoverflow.com/questions/7079378/…
-
什么是 Inner.first 和 Inner.second ??
-
InnerDetails 下的两个不同对象
标签: c# asp.net-mvc entity-framework linq entity-framework-6