gpt4 book ai didi

entity-framework - Entity Framework 代码优先左连接

转载 作者:行者123 更新时间:2023-12-01 11:06:06 25 4
gpt4 key购买 nike

DB Tables

我首先在 EF 代码中创建了一个简单的数据库,但似乎遇到了问题。

我想做的是,查询 DBContext 以检索一个自定义对象 CheckedTag,该对象将具有所有可用标签和一个 bool 字段 checked。

Code First 抽象了多对多表,我似乎找不到正确的查询。

我试过了

            var qry = from t in Db.Tags
from a in Db.Articles
where(a.Id == articleId)
select new CheckedTag
{
Id = t.Id,
Name = t.Name,
PermanentUrl = t.PermanentUrl,
Checked = t.Id == null ? false : true
};

现在在网上搜索了几个小时。

如果 articleId 为 0,它将检索所有标签并将 checked 设置为 false,如果 articleId 用于现有文章,则将返回所有标签并将 checked 标签设置为 true .

任何人都可以建议我需要用来检索以实现此结果的查询吗?

最佳答案

如果我理解正确的话,对于一篇特定的文章(具有 id 'articleId),您希望获得所有标签的列表(而不仅仅是它所具有的标签),如果它确实有它,否则为假。如果是这样,这是我建议的查询:

var checkedTags= from t in Db.Tags
select new CheckedTag
{
Id = t.id,
Name = t.name,
PermanentUrl = t.PermanentUrl,
Checked = t.Articles.Any(a => a.Id == articleId)
};

希望这有帮助:)

编辑:将“包含”替换为“任何”。谢谢@Yakimych。

关于entity-framework - Entity Framework 代码优先左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5729280/

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