gpt4 book ai didi

c# - Entity Framework 从行中选择单个值

转载 作者:行者123 更新时间:2023-11-30 17:22:03 25 4
gpt4 key购买 nike

我正在使用 .NET 3.5 的 Entity Framework

我有两个具有 0-1 到多关系的表。让我们说公民和城市。每个公民都有将他连接到城市的外键列 (ID)。

当我选择单例公民时,我还需要选择他居住的城市的名称。因为城市表包含大量与公民无关的数据,所以我不想从数据库中检索它以节省一些带宽。

目前我正在使用 Include() 函数,但它会从城市中获取与公民相关的所有数据,而我只需要姓名。

有没有一种方法可以编写查询以从 EF 中的整行中选择单个单元格,而无需创建新的类、接口(interface)或存储库?这是我的包含:

            Citizen citizen = db.Citizens.Include("Cities").First(p => p.citizen_id == id);

最佳答案

你通过投影来做到这一点,例如

var c = from c in db.Citizens
where c.citizen_id == id
select new
{
Name = c.Name,
CityName = c.City.Name
};

您还可以投影到 POCO 上。

不能告诉 EF 检索具有相关 City 但仅具有 City.Name< 的 Citizen 类型的对象 已填写。EF 不会部分具体化实体。当您只需要几个字段时,使用 View /表示模型或 DTO 而不是实体。

关于c# - Entity Framework 从行中选择单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2976912/

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