C# lambda表达式中的多个表
我试图使用lambda表达式从数据库中获取数据,但我不知道如何使用多个表 在SQL中,我会这样写:C# lambda表达式中的多个表,c#,linq,lambda,C#,Linq,Lambda,我试图使用lambda表达式从数据库中获取数据,但我不知道如何使用多个表 在SQL中,我会这样写: SELECT item.* FROM Item item, ItemListType listType WHERE listType.DisplayName = 'student' AND listType.ID = item.ItemListTypeId 但是我怎样才能把它转换成lambda表达式呢 Item表列:ID,ItemListTypeId ItemListType表列:ID,N
SELECT item.*
FROM Item item, ItemListType listType
WHERE listType.DisplayName = 'student' AND listType.ID = item.ItemListTypeId
但是我怎样才能把它转换成lambda表达式呢
表列:Item
ID,ItemListTypeId
表列:ItemListType
ID,Name
ItemListType
中)。我已经设法编写了一个查询来获取ItemListType
,但我不知道如何在LINQ查询中使用多个表:
ItemListType result = await this.ItemListTypes
.Include(i => i.Items).SingleAsync(i => i.Name == name);
可以在嵌套的from子句中使用多个表 但最好创建内部联接查询: lambda语法中相同:
db.ItemListType
.Where(lt => lt.DisplayName == "student")
.Join(db.Item, lt => lt.ID, i => i.ItemListTypeId, (lt,i) => i)
或者,如果您具有ItemListType中项目的导航属性:
db.ItemListType
.Where(lt => lt.DisplayName == "student")
.SelectMany(lt => lt.Items)
伟大的我只是不知道如何在lambda中使用它。这就是我现在拥有的:itemlisttyperesult=wait this.ItemListTypes.Include(I=>I.Items).SingleAsync(I=>I.Name==Name)@类似于
等待db.ItemListTypes.Where(lt=>lt.DisplayName==“student”).Join(db.Items,lt=>lt.ID,i=>i.ItemListTypeId,(lt,i=>i).ToListAsync()
@testheruler或者如果您有导航属性:等待这个.ItemListTypes.Where(lt=>lt.DisplayName==“student”).SelectMany(lt=>lt=>lt.Items).ToListAsync()
非常感谢!那正是我要找的for@TempTheRuler不客气。下次请提供您的代码,并说明为什么它不工作(错误或结果不是您期望的)。这对我们来说是非常有用的信息,可以提供更准确的答案
db.ItemListType
.Where(lt => lt.DisplayName == "student")
.Join(db.Item, lt => lt.ID, i => i.ItemListTypeId, (lt,i) => i)
db.ItemListType
.Where(lt => lt.DisplayName == "student")
.SelectMany(lt => lt.Items)