在我的所有表格中,我有一个IsDeleted字段,以便我可以打开和关闭记录。我试图弄清楚如何使用LinqToSql过滤掉连接表中已删除的记录,但我不知道如何在linq查询中识别该表。这是我的基本表定义:
modelBuilder.Entity<MenuItemsEntity>().ToTable("MenuItems")
.HasMany(m => m.UserGroups).WithMany(ur => ur.MenuItems)
.Map(m =>
{
m.ToTable("MenuItems_UserGroups")
.MapLeftKey("MenuItemId")
.MapRightKey("UserGroupId");
});
到目前为止,这是我的linq声明:
var menuItems = _ctx.MenuItems.Where(x => !x.IsDeleted && x.ParentId == parentId
&& x.UserGroups.Any(r => !r.IsDeleted && r.Id == userGroupId));
这会为表MenuItems和UserGroups添加IsDeleted检查,但不会为MenuItems_UserGroups添加。
有什么想法吗?