c# - 类没有实现接口成员,因为它没有匹配的返回类型
问题描述
为 ASP.NET 核心 Web API 应用程序实现服务并获得持续错误。
- 即使我只是实现接口而不向方法添加任何其他代码,错误仍然会发生。
- 我已经检查,仔细检查,甚至三次检查所有签名以确保没有错别字。
- 在查看其他 SO 线程后,尝试将 GetUserInvite 函数设为 IEnumerable。仍然没有运气。
界面:
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using API.Data.Dtos.InviteDto;
using API.Domain;
namespace API.Services
{
public interface IInviteService
{
Task<UserInvite> GetUserInvite(Guid sourceUserId, Guid invitedUserId);
Task<IEnumerable<InviteDto>> GetUserInvites(string predicate, Guid userId);
Task<User> GetUserWithInvites(Guid userId);
}
}
服务:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using API.Data;
using API.Data.Dtos.InviteDto;
using API.Domain;
using Microsoft.EntityFrameworkCore;
namespace API.Services
{
public class InviteService : IInviteService
{
private readonly DataContext _context;
public InviteService(DataContext context)
{
_context = context;
}
public async Task<UserInvite> GetUserInvite(Guid sourceUserId, Guid invitedUserId)
{
return await _context.Invites.FindAsync(sourceUserId, invitedUserId);
}
public async Task<User> GetUserWithInvites(Guid userId)
{
return await _context.Users.Include(x => x.InvitedUsers).FirstOrDefaultAsync(x => x.Id == userId);
}
public async Task<IEnumerable<InviteDto>> GetUserInvites(string predicate, Guid userId)
{
var users = _context.Users.OrderBy(u => u.UserName).AsQueryable();
var invites = _context.Invites.AsQueryable();
if (predicate == "invited")
{
invites = invites.Where(invite => invite.SourceUserId == userId);
users = invites.Select(invite => invite.InvitedUser);
}
if (predicate == "invitedBy")
{
invites = invites.Where(invite => invite.InvitedUserId == userId);
users = invites.Select(invite => invite.SourceUser);
}
return await users.Select(user => new InviteDto
{
Username = user.UserName,
City = user.City
}).ToListAsync();
}
}
}
解决方案
问题是VS中的错误。我重新启动并编译了所有内容。感谢所有帮助过的人。
推荐阅读
- razor - 如何使用没有控制器的 Razor 页面填充下拉列表
- c# - 修改已发布项目的 dll.config 的正确方法是什么?
- algorithm - 从给定的列表或地图中找到转换器的最佳路径
- mongodb - 迁移到 Meteor 1.7.0.4:MongoDB:“更新路径……会在……处产生冲突”
- usb - 如何从 CX3 获取 RAW16
- configuration - weblogic 12.2.1 配置向导 C:\Program 无法识别错误
- terraform - Terraform“错误:未知的根级别密钥”
- javascript - 如何将 Python 函数计算值传递给 javascript
- vba - VBA - 使用特定命名约定保存工作簿的多个副本
- javascript - 清理 Javascript 中的多个变量