2013-04-10 3 views
1

Я хочу, чтобы получить дату сервера с помощью моего LINQ к SQL, так что я добавить частичный класс класса DataContext и добавить метод для получения даты:Как получить дату сервера с помощью Linq

Partial Public Class DBDataContext 
    <Global.System.Data.Linq.Mapping.FunctionAttribute(Name:="GetDate", IsComposable:=true)> _ 
    Public Function GetSystemDate() As DateTime 
     Dim mi As MethodInfo = TryCast(MethodBase.GetCurrentMethod() , MethodInfo) 
     Return CType(Me.ExecuteMethodCall(Me, mi, New Object()).ReturnValue, DateTime) 'exception here 
    End Function 
End Class 

но Я получаю это исключение, которое я мог бы понять:

Индекс находился за пределами массива.

, где я ошибся?

+0

метод ExecuteMethodCall будет принимать третий parmater как массив Тип: System.Object() Массив параметров, которые будут переданы в команде. [Ссылка] (http://msdn.microsoft.com/en-us/library/bb493883.aspx) – andy

ответ

0

Я не уверен, почему, но добавление брекетов решило проблему.

Partial Public Class DBDataContext 
    <Global.System.Data.Linq.Mapping.FunctionAttribute(Name:="GetDate", IsComposable:=true)> _ 
    Public Function GetSystemDate() As DateTime 
     Dim mi As MethodInfo = TryCast(MethodBase.GetCurrentMethod() , MethodInfo) 
     Return CType(Me.ExecuteMethodCall(Me, mi, New Object(){}).ReturnValue, DateTime) 'exception here 
    End Function 
End Class 
+1

метод ExecuteMethodCall будет принимать третий parmater как массив Тип: System.Object() Массив параметров для передачи команды. [Ссылка] (http://msdn.microsoft.com/en-us/library/bb493883.aspx) – andy

Смежные вопросы