gpt4 book ai didi

c# - 需要有关 LINQ to SQL WHERE-clause on foreign table 的帮助

转载 作者:行者123 更新时间:2023-11-30 14:41:55 26 4
gpt4 key购买 nike

假设我有这两个表:

ParentDataItem
ParentDataItemID
...some other fields...

ChildDataItem
ChildDataItemID
ParentDataItemID (foreign key)
Name
Value

现在我想选择任何具有指定名称和值的 ChildDataItem 的 ParentDataItem。

我知道我的第一种方法离我很远,它是这样的:

// db is the data context object
db.ParentDataItems.Where(p => p.ChildDataItems.Where(c => c.Name == "XXX" && c.Value == "XXX"));

我更喜欢 lambda 语法,但两者都行。

最佳答案

如果它们之间已经存在关系(例如因为您在设计器中设置了一个关系),您应该能够做到:

var foo = db.ParentDataItems.Where(p => p.ChildDataItems.Any(c => c.Name == "value");

这将获取任何具有名称与“值”匹配的子项的父数据项。

否则,您将不得不手动将两个表连接在一起(这在 lambda 语法中看起来有点可怕):

var foo = db.ParentDataItems.Join(db.ChildDataItems.Where(c => c.Name == "value"),
p => p.ChildDataItemId,
c => c.ParentDataItemId,
(parent, child) => parent);

关于c# - 需要有关 LINQ to SQL WHERE-clause on foreign table 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3548702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com