我在使用 Entity Framework 和 PostgreSQL 时遇到问题,有人知道如何连接两个表并将第二个表用作 where 子句吗?
我想在实体框架中做的选择是在 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
子句。
答案 0 :(得分:2)
像这样:
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();
答案 1 :(得分:0)
试试这个:
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();