执行自定义查询 - 实体框架

时间:2010-07-14 12:54:08

标签: c# winforms entity-framework

我想使用实体框架执行自定义查询以获取数据库服务器select Getdate()的日期时间。我怎么能这样做?

由于

3 个答案:

答案 0 :(得分:4)

ObjectQuery<DateTime> date = new ObjectQuery<DateTime>("select Getdate()", context)
DateTime now = date.Single();

答案 1 :(得分:2)

你可以尝试这样的想法:

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请求作为参数和泛型类型的返回类型。

答案 2 :(得分:-1)

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

您可以对表格(例如“产品”)使用查询,并确保不选择表格中的任何列,如上面的代码所示。它不优雅,但有效。