2011-09-03 28 views
0

IDE是示出下面的代码如何在类EntitySet(TEntity)上应用<extension()>属性?

<Extension()> _ 
Public Function FindByCode(Of TEntity)(ByRef vTEntities As EntitySet(Of TEntity), ByVal vCode As String) As TEntity 
    Return (From oTEntity In vTEntities _ 
          Where oTEntity.Code.Value = vCode _ 
          Select oTentity).FirstOrDefault() 
End Function 

错误的错误是:

1.型号参数“TEntity”不满足“级”约束为类型参数“TEntity”。

2.'Code'不是'TEntity'的成员。

请帮我解决这个问题。

+1

如果您还会发布错误消息 – jeroenh

+0

,那么它会有所帮助,您的代码不完整。什么是oPersonName?你也有扩展拼写错误(它应该是扩展名) – jeroenh

回答

1

我怀疑有一个问题是参数声明的ByRef部分 - 扩展方法要求第一个参数是ByVal。你不是使用的事实,这是ByRef反正...

另一个问题是,这是通用的 - 但你假设有一个名为Code属性,它反过来有一个名为Value属性 - 在那些假设是从哪里来的?你可能想限制TEntity类型参数,或者可能阻止它在第一位通用。

编辑:你会需要一个约束添加到TEntity,迫使它是引用类型:

FindByCode(中TEntity为类)

...但赢得”帮助它不知道Code属性是什么。

+0

我用“ByVal”替换了“ByRef”,问题仍然存在 –

+0

@Ravi:那将是由于第二个问题,然后... –

相关问题