views:

38

answers:

3

I want to execute custom query to get datetime of DB server select Getdate() using entity framework. How can I do this?

Thanks

+3  A: 
ObjectQuery<DateTime> date = new ObjectQuery<DateTime>("select Getdate()", context)
DateTime now = date.Signle();
Kikaimaru
Typo : date.Single()
Julien N
I am getting this exception "The query syntax is not valid."
Muhammad Akhtar
A: 

You can try somethink like that :

public static partial class ObjectContextExtension
{
    public static T ExecuteScalarCommand<T>(this ObjectContext context, string command)
    {
        DbConnection connection = ((EntityConnection)context.Connection).StoreConnection;
        if (connection.State == ConnectionState.Closed)
            connection.Open();

        DbCommand cmd = connection.CreateCommand();
        cmd.CommandText = command;
        cmd.CommandType = CommandType.Text;

        return (T)cmd.ExecuteScalar();
    }

It add the method "ExecuteScalarCommand" to the ObjectContext.
You just have give the SQL request as parameter and the return type for the generic type.

Julien N
A: 
Public Function GetDateTimeFromServer() As DateTime
    Using context As New NorthwindEntities()
        Dim dateQry As IQueryable(Of DateTime) = From bogus In context.Products_
            Select DateTime.Now
        Dim result As DateTime = dateQry.First()
        Return result
    End Using
End Function

You can use a query against a table (e.g. Products) and make sure you don't select any columns in the table as shown in the above code. It is not elegant but it works.

walkerk