Thi*_*iro 6 c# resharper lambda visual-studio asp.net-core
我将一个WebAPI从FullDotnet(4.6)迁移到.Net Core 2.0,我在使用Dapper的数据层中遇到了这个问题.
我的代码:
public List<Doctor> GetList()
{
List<Doctor> ret;
using (var db = GetMySqlConnection())
{
const string sql = @"SELECT D.Id, D.Bio, D.CRMState, D.CRMNumber,
U.Id, U.Email, U.CreatedOn, U.LastLogon, U.Login, U.Name, U.Phone, U.Surname, U.Id, U.Birth, U.CPF,
S.Id, S.Name
from Doctor D
inner join User U on U.Id = D.UserId
inner join Speciality S on S.Id = D.IDEspeciality
order by D.Id DESC";
ret = db.Query<Doctor, User, Speciality, Doctor>(sql, (doctor, user, speciality) =>
{
doctor.User = user;
doctor.Speciality = speciality;
return doctor;
}
, splitOn: "Id, Id", commandType: CommandType.Text).ToList();
}
return ret;
}
Run Code Online (Sandbox Code Playgroud)
奇怪的行为:
解决方案构建和工作 VisualStudio突出显示的"错误"是:
参数类型'System.Func`5'不能赋予参数类型'lambda expression'
我有另一个具有相同行为和相同错误的类,但是,再次,代码编译和工作,但这个"错误突出显示"很烦人!
我在运行.NET Framework 4.6的旧解决方案中没有这个亮点
有用的信息:
正如我们在评论中发现的那样,该问题是由 ReSharper (2017.2) 引起的。
当怀疑 ReSharper 出现问题时,您可以采取一些额外的步骤。
暂停/恢复 ReSharper
为了确认 ReSharper 导致问题,您可以使用以下命令暂停它:
Tools/Options.../Resharper node/Suspend now
在这种情况下,执行暂停/恢复周期就足够了并解决了问题。
清除 ReSharper 缓存(来源)
损坏的缓存会影响 ReSharper 的行为。例如,ReSharper 可以停止解析符号,或者某些导航命令可能不可用。如果您注意到这种奇怪的行为,清除当前解决方案的缓存在大多数情况下可能会有所帮助。
清除当前解决方案的缓存
- 在 Visual Studio 中打开据称缓存已损坏的解决方案。
- 开放环境 | ReSharper 选项的常规页面。
- 单击清除缓存。请注意,只会清理当前选定的缓存位置中的缓存。
- 重新打开您的解决方案以使更改生效。
如果特定解决方案超过 30 天未打开,ReSharper 还会自动清理解决方案缓存。
如果以上方法不起作用怎么办?
如果您确认这是 ReSharper 问题,那么您应该首先尝试更新到最新版本的 ReSharper 并尝试重现您的问题。
如果问题仍然存在,那么您应该前往JetBrains 错误跟踪器,并在确认这不是已报告的错误后提交问题。
| 归档时间: |
|
| 查看次数: |
307 次 |
| 最近记录: |