gpt4 book ai didi

c# - 使用 ENTity Framework 查询填充 DTO 类 List<>

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

是否可以从 EF 查询中填充列表?我的DTO如下:

public DTO()
{
public string ClientName { get; set;}
public List<string> RelatedCodes { get; set;}
}

我填充 DTO 的方法 =

Public DTO MyResult(string ClientCode)
{
return (from o in repository.RelatedClient
where o.LeadCode == ClientCode
select new DTO { ClientName = o.ClientName, RelatedCodes = o.RelatedCodes.ToList()});
}

我知道我不应该在查询中添加 ToList() ,或者如果可以的话我做错了。谁能建议这是如何完成的。对于此示例,我的 DTO 被缩减了,但如果可能的话,我想在一个带有一个实体查询的 DTO 中有很多单个属性和一个 List<>(或多个列表)?

所以按照下面的回答,我认为没有办法直接查询这个。我最初的选择是:

Public DTO MyResult(string ClientCode)
{
var temp = (from o in repositry.RelatedCode Where o.LeadCode == ClientCode select o).ToList();

DTO dto = (from o in repository.LeadClient Where o.LeadCode == ClientCode Select o.ClientName).Firstordefault();

foreach(string rc in temp)
{ dto.RelatedCode.Add(rc);}
return dto;

}

我对此很满意,但如果有人可以建议这是否是没有自动映射器之类的正确处理方式,我将不胜感激。我正在尝试学习 Entity Framework 并想检查我是否缺少一些内置功能。<​​/p>

最佳答案

类似于:

var dtoEntity = repo.RelatedClient.SingleOrDefault(x => x.LeadCode == ClodeCode);

DTO d = new DTO();
d.ClientName = dtoEntity.ClientName;
foreach (var relatedCode in dtoEntity.RelatedCodes)
{
d.RelatedCodes.Add(relatedCode);
}

return d;

使用这种方法,您可以添加任意数量的属性。但是,我建议为此使用 AutoMapper。

在这里阅读更多:

http://nuget.org/packages/automapper

关于c# - 使用 ENTity Framework 查询填充 DTO 类 List<>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12801488/

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