繁体   English   中英

存储库模式类从C#转换为vb.net

[英]Conversion of repository pattern class from c# to vb.net

我有以下C#代码:

public T Single(Expression<Func<T, bool>> where)
    {
        return _dbset.Single<T>(where);
    }

我尝试使用转换工具将其转换为vb.net,该转换工具将代码呈现如下:

Public Function [Single](where As Expression(Of Func(Of T, Boolean))) As T
    Return _dbset.[Single](Of T)(where)
End Function

这将引发错误“过载解析失败,因为没有可访问的'Single'接受此数量的参数

关于如何纠正这个想法?

出于某种原因,编译器无法绑定到正确的静态方法-可能是因为它不知道您是否要使用Enumerable.SingleQueryable.Single 您可以通过静态调用扩展方法来解决它:

Public Function [Single](where As Expression(Of Func(Of T, Boolean))) As T
    Return Queryable.Single(Of T)(_dbset, where)
End Function

我不记得这个原因的原因,但是在这些情况下,通常只需将通用说明符放到方法调用上就可以了:

Public Function Single(ByVal where As Expression(Of Func(Of T, Boolean))) As T
        Return _dbset.Single(where)
End Function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM