gpt4 book ai didi

c# - 使用存储库模式从服务返回由 ID 选择的单个实体

转载 作者:太空宇宙 更新时间:2023-11-03 21:45:35 24 4
gpt4 key购买 nike

我正在开发 ASP.NET MVC3 应用程序。我想在我的服务中创建一个方法,它将仅返回具有我从调用该方法的地方提供的 ID 的实体。

在我的服务中称为 DocumentService我写了以下简单的方法:

public Documents GetDocById(long id)
{
return DocumentsRepository.All().Where(d => d.Id == id);
}

因为我只想要一个实体,所以我决定将方法的返回类型设置为名为 Documents 的实体类型.我用这段代码得到的错误是:

Cannot implicitly convert type "System.Linq.IQueryable<DataAccess.Documents> to DataAccess.Documents.

这是合乎逻辑的。但是考虑我应该怎么做才能将其转换为我想要的类型我发现自己有问题。例如,我可以将方法的返回类型设置为 List<Documents>然后添加 ToList()在我的返回声明的末尾。但我不期待一个列表,我期待一个记录而不是记录列表。

那么有没有一种方法,如果有的话,我现在能想到的是如何只返回一个实体,而不是只返回一个包含一个项目的列表?

最佳答案

return DocumentsRepository.All().SingleOrDefault(d => d.Id == id);

return DocumentsRepository.All().FirstOrDefault(d => d.Id == id);

如果有多个实体具有相同的id。

关于c# - 使用存储库模式从服务返回由 ID 选择的单个实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17164650/

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