You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#查询仅取Id和Name后,无法添加至OrganizationModel列表的解决方法

问题修复方案

你遇到的错误是因为查询返回的是匿名类型,但orgList是List<OrganizationModel>类型的集合,两者类型不兼容导致无法直接添加。以下是两种符合需求的修复方式:

方式一:直接构造OrganizationModel实例

在Select中直接创建OrganizationModel对象并赋值需要的字段,这样查询结果就是目标类型,可直接添加到列表:

var orgList = new List<OrganizationModel>();
var organization = await dbContext.Organization
    .Select(x => new OrganizationModel 
    { 
        Id = x.Id, 
        Name = x.Name 
    })
    .FirstOrDefaultAsync(x => x.Name == xlOrganization);

if (organization != null) // 避免添加null值
{
    orgList.Add(organization);
}

方式二:利用构造函数(如果类中已定义)

如果OrganizationModel类有接收Id和Name的构造函数,比如:

public class OrganizationModel
{
    public int Id { get; set; }
    public string Name { get; set; }

    public OrganizationModel(int id, string name)
    {
        Id = id;
        Name = name;
    }
}

可以简化为构造函数初始化:

var orgList = new List<OrganizationModel>();
var organization = await dbContext.Organization
    .Select(x => new OrganizationModel(x.Id, x.Name))
    .FirstOrDefaultAsync(x => x.Name == xlOrganization);

if (organization != null)
{
    orgList.Add(organization);
}

两种方式都只会从数据库查询Id和Name字段,满足你不需要其他字段的需求,同时解决了类型不匹配的错误。

内容的提问来源于stack exchange,提问作者Cypher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 01:17:13