Выполнение пользовательского запроса - Entity Framework - PullRequest
1 голос
/ 14 июля 2010

Я хочу выполнить пользовательский запрос, чтобы получить дату и время сервера БД select Getdate() с использованием структуры объекта. Как я могу это сделать?

Спасибо

Ответы [ 3 ]

4 голосов
/ 14 июля 2010
ObjectQuery<DateTime> date = new ObjectQuery<DateTime>("select Getdate()", context)
DateTime now = date.Single();
2 голосов
/ 14 июля 2010

Вы можете попробовать что-то вроде этого:

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();
    }

Он добавляет метод "ExecuteScalarCommand" в ObjectContext.
Вы просто задаете запрос SQL в качестве параметра и тип возврата для универсального типа.

0 голосов
/ 06 октября 2010
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

Вы можете использовать запрос к таблице (например, «Продукты») и убедиться, что вы не выбрали ни одного столбца в таблице, как показано в приведенном выше коде. Это не элегантно, но работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...