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

C# 执行自定义查询--实体框架,c#,winforms,entity-framework,C#,Winforms,Entity Framework,我想执行自定义查询以获取数据库服务器的日期时间,并使用实体框架选择Getdate。我该怎么做 谢谢你可以试试这样的想法: public static partial class ObjectContextExtension { public static T ExecuteScalarCommand<T>(this ObjectContext context, string command) { DbConnection connection = ((

我想执行自定义查询以获取数据库服务器的日期时间,并使用实体框架选择Getdate。我该怎么做


谢谢

你可以试试这样的想法:

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请求作为参数,并为泛型类型提供返回类型。

您可以尝试这样的方法:

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();
    }
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
它将方法ExecuteScalarCommand添加到ObjectContext。 您只需将SQL请求作为参数和泛型类型的返回类型

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
您可以对表(例如Products)使用查询,并确保未选择表中的任何列,如上述代码所示。它不优雅,但很管用


您可以对表(例如Products)使用查询,并确保未选择表中的任何列,如上述代码所示。第二个答案是,我使用的是实体框架,而不是LINQ。这是给Linq的你的数据库提供商是什么?MS SQL Server?MySQL?神谕第二个答案。我使用的是实体框架,而不是LINQ。这是给Linq的你的数据库提供商是什么?MS SQL Server?MySQL?神谕我收到此异常查询语法无效。我收到此异常查询语法无效。