gpt4 book ai didi

c# - 无法将类型 IEnumerable 转换为 List C#

转载 作者:IT老高 更新时间:2023-10-28 13:35:01 24 4
gpt4 key购买 nike

我正在尝试将列表带到 frontEnd .我正在使用 mongoDb。我的 mongodb有一个名为 Employee 的集合. Employee有以下属性

public class EmployeeViewModel
{
[BsonId(IdGenerator = typeof(StringObjectIdGenerator))]
public string ownerId { get; set; }
public string atributeChange { get; set; }
public PersonalDataViewModel personalData { get; set; }
public AddressViewModel address { get; set; }
public List<EmailsViewModel> emails { get; set; }
public SyndicateViewModel syndicate { get; set; }
public List<DependentsViewModel> dependents { get; set; }
public List<PhoneViewModel> phone { get; set; }
public List<BankViewModel> bank { get; set; }
public AttributesViewModel attributes { get; set; }
public List<BenefitsViewModel> benefits { get; set; }
public TransportViewModel transport { get; set; }
public List<AttachmentsViewModel> attachments { get; set; }
public List<DocumentsViewModel> documents { get; set; }
public List<DocumentsImagesViewModel> DependentsDocuments { get; set; }
public List<AttachmentsViewModel> DependentsAttachments { get; set; }
public List<BenefitsViewModel> DependentsBenefits { get; set; }
}

在此Model ,我有一个属性叫做:public List <DocumentsImagesViewModel> DependentsDocuments {get; set; } :

public class DocumentsViewModel
{
[BsonId]
public string ownerId { get; set; }
public string id { get; set; }
public string dependentId { get; set; }
public string number { get; set; }
public DateTime expiration { get; set; }
public List<DocumentsImagesViewModel> images { get; set; }
public List<DocumentPropertiesViewModel> properties { get; set; }
public DocumentTypeViewModel type { get; set; }
}

我正在尝试带来包含 depedentID 的好处等于参数。当我使用这种方法时,它有一个无法转换的错误。 IEnumerable to List C#

public async Task<List<Documents>> GetDocument(string ownerId, string dependentId)
{
var query = from employee in _employee.AsQueryable()
where employee.ownerId == ownerId
select new Employee()
{
DependentsDocuments = employee.DependentsDocuments.Where(x => x.dependentId == dependentId)
};
return query.ToList();
}

获取这些数据的最佳方式是什么?这个过滤器?我用这个问题作为引用:Mongodb C# driver return only matching sub documents in array

最佳答案

LINQ 的 .Where返回 IEnumerable<T> ,您的模型需要 List<T> ,您可以将模型更改为 IEnumerable<T>或者你可以改变这行代码:

DependentsDocuments = employee.DependentsDocuments
.Where(x => x.dependentId == dependentId)

到这里:

DependentsDocuments = employee.DependentsDocuments
.Where(x => x.dependentId == dependentId)
.ToList()

关于c# - 无法将类型 IEnumerable 转换为 List C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55794181/

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