簡體   English   中英

實體框架:連接兩個表和 where 子句

[英]Entity Framework : join two tables and where clause

我在使用 Entity Framework 和 PostgreSQL 時遇到問題,有人知道如何連接兩個表並將第二個表用作 where 子句嗎?

我想在實體框架中執行的 select 將在 SQL 中:

SELECT ai.id, ai.title, ai.description, ai.coverimageurl 
FROM app_information ai 
INNER JOIN app_languages al on al.id = ai.languageid
WHERE al.languagecode = 'es'

目前我有這個

appInformationToReturn = context.app_information
                                .Join(context.app_language, ai => ai.languageid, 
                                      al => al.id, (ai, al) => new AppInformation()
                                                                   {
                                                                        id = ai.id,
                                                                        title = ai.title,
                                                                        description = ai.description,
                                                                        coverimageurl = ai.coverimageurl
                                                                   })
                                .Where()
                                .FirstOrDefault();

我不知道如何構建where子句。

像這樣:

appInformationToReturn = context.app_information
        .Join(context.app_language, ai => ai.languageid, 
              al => al.id, (ai, al) => new 
              {
                  id = ai.id,
                  title = ai.title,
                  description = ai.description,
                  coverimageurl = ai.coverimageurl,
                  lang = al.languagecode
              }).Where(x=>x.lang == "es")
                .Select(x=> new AppInformation()
                        {
                            id = x.id,
                            title = x.title,
                            description = x.description,
                            coverimageurl = x.coverimageurl
                        })
        .FirstOrDefault();

嘗試這個:

var item = (
    from ai in context.app_information
    join al in context.app_language on ai.languageid equals al.id 
    where (al.languagecode == "es")
    select new AppInformation 
    {
        id = ai.id,
        title = ai.title,
        description = ai.description,
        coverimageurl = ai.coverimageurl
    }).FirstOrDefault();

或嘗試更短

var item = context.app_information
    .Where(ai => ai.app_language.languagecode == "es")
    .Select(ai => new AppInformation 
    {
        id = ai.id,
        title = ai.title,
        description = ai.description,
        coverimageurl = ai.coverimageurl
    })
    .FirstOrDefault();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM