gpt4 book ai didi

c# - 适合模型的 LINQ 查询

转载 作者:行者123 更新时间:2023-11-30 20:54:52 25 4
gpt4 key购买 nike

我有一个模型版本。这包含包含文档的一个唯一版本的信息。

在我的 View 模型中,我是这样设置的:

public virtual ICollection<IPACS_Version> rejectionList { get; set; }

所以我现在可以收集版本文档。

这是 LINQ:

model.rejectionList = (from v in db.IPACS_Version
join d in db.IPACS_Document
on v.documentID equals d.documentID
where v.dateRejected != null && (d.createdBy == currUser || d.requester == currUser)
select v);

这给我以下错误:

无法将类型“System.Linq.IQueryable”隐式转换为“System.Collections.Generic.ICollection”。存在显式转换(是否缺少强制转换?)

该行可以返回给我 0 到许多“版本”。所以我认为我没有正确理解的是为什么这个 LINQ 查询不能适合我的版本模型,因为查询返回 0 到许多版本?

最佳答案

LINQ 查询返回 IQueryable<T> ,而您要求它的类型为 ICollection<T> .这两个界面截然不同,您需要将它们合二为一。从技术上讲,你需要物化IQueryable<T>进入某种内存中的数据序列,这将允许添加和删除它的成员(ICollection 接口(interface)抽象的性质)

快速解决方案是添加 ToList在查询的最后

model.rejectionList = (from v in db.IPACS_Version
join d in db.IPACS_Document
on v.documentID equals d.documentID
where v.dateRejected != null && (d.createdBy == currUser || d.requester == currUser)
select v).ToList();

IList工具 ICollection<T> ,这应该可以正常工作。

关于c# - 适合模型的 LINQ 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18728135/

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