【问题标题】:select data from first table based on two forigen key in another table using linq使用 linq 根据另一个表中的两个外键从第一个表中选择数据
【发布时间】:2018-05-31 20:37:15
【问题描述】:

我有两张桌子

tbl_news tbl_NewsRelation

在 tbl_NewsRelation 我有两个外键 在第一个外键中,我保留了一个新闻 ID 第二个我保留相关的新闻ID

tbl_news

tbl_NewsRelation

我需要获取新闻的所有相关新闻

例如 news1 有 3 条相关新闻

新闻3

新闻4

新闻6

..................

如何使用 linq 做到这一点?

换句话说,我需要执行以下操作:

var query= select * from tbl_relation where FK_NewsID=1
foreach var item in query
{
select * from tbl_news where Id=Fk_RelatedNewsID
}

您可以在下面的链接中下载表格脚本 script

【问题讨论】:

  • 如果您发布一些具有预期结果的示例数据,这将非常有帮助。
  • @Error_2646 我发布了两张图片,也是预期的结果,因为我发布了我的预期结果是 news3、news4、news 6,它们是 news1 的相关新闻
  • 看不到您的图片,也不允许发布图片 - 发布可用、可读、可复制的文本。
  • 好的,让我添加表格脚本

标签: sql entity-framework linq foreign-keys


【解决方案1】:

以下是使用 LINQ 执行此操作的几种方法。第一个使用子查询和Contains,第二个使用join

var relatedNewsIDs = from n in tbl_NewsRelation
                     where n.newsID == "news1"
                     select n.relatedNewsID;

var ans = from n in tbl_news
          where relatedNewsIDs.Contains(n.newsID)
          select n;

使用join进行第二次查询:

var ans2 = from rn in tbl_NewsRelation
           where rn.newsID == "news1"
           join n in tbl_news on rn.relatedNewsID equals n.newsID
           select n;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 2014-10-25
    相关资源
    最近更新 更多