我总是发现自己在同一个地方停留在LINQ上。我根本无法让LINQ技术牢牢占据我的脑海。
var groupIds = context.Set<UserControl>().Where(x => x.SystemUserId == System.Convert.ToInt32(userId)).Select(x => x.SystemGroupId);
{
var userGroups = context.Set<Group>().Where(g => g.GroupId)
{
groups.AddRange(userGroups.Select(sysGroup => new ToolUserGroup(sysGroup.GroupName, sysGroup.GroupId.ToString())));
}
}
我正在尝试根据第一个Group
ID列表中所选列表的GroupId
属性选择UserControl
个对象列表。我根本无法弄清楚语法。
我甚至不确定只是手工编写SQL会更容易...... LINQ总是在我看来比编写SQL更加复杂和抽象。
答案 0 :(得分:3)
我假设您正在尝试根据项目列表选择一个列表。
var groupIds = context.Set<UserControl>()
.Where(x => x.SystemUserId ==System.Convert.ToInt32(userId))
.Select(x => x.SystemGroupId);
.ToList();
var userGroups = context.Set<Group()
.Where(g=>groupIds.Contains(g.GroupId)).ToList();
答案 1 :(得分:0)
你可以尝试类似的东西
class Item
{
public int Id { get; set; }
public string Name { get; set; }
}
class SubItem
{
public int Id { get; set; }
public int ForeignKey { get; set; }
public string SubName { get; set; }
}
class Program
{
static void Main(string[] args)
{
var sub = new List<SubItem>();
var item = new List<Item>();
sub.Where(s => item.Select(i => i.Id).Contains(s.ForeignKey)).ToList();
}
}