2

受け取るパラメーターに応じて、大きくなったり小さくなったりする複雑なクエリがあります。例:

public string CreateQuery(string[]  fields)
{
    var query = "SELECT student_name,student_last_name FROM students";

    if(fields[0]!= "")
    {
        query += " WHERE studient_id='"+fields[0]+"'";
    }

    if(fields[1] != null)
    {
        //them....
    }
    //and so on

    return query;
}

だから私はwebmatrixのようなそのクエリを実行する必要があります

ViewBag.StudentInf = db.Query("Query string here...");

では、どうすればエンティティ フレームワークでクエリ文字列を実行できますか??

4

3 に答える 3

1

.NET Framework バージョン 4 以降の場合: ObjectContext.ExecuteStoreCommand()を使用します。

チュートリアルはこちら

または、この機能を試してください

static void ExecuteSql(ObjectContext c, string sql)
{
    var entityConnection = (System.Data.EntityClient.EntityConnection)c.Connection;
    DbConnection conn = entityConnection.StoreConnection;    
    ConnectionState initialState = conn.State;

    try
    {
        if (initialState != ConnectionState.Open)
            conn.Open();  

        using (DbCommand cmd = conn.CreateCommand())
        {
            cmd.CommandText = sql;
            cmd.ExecuteNonQuery();
        }
    }
    finally
    {
        if (initialState != ConnectionState.Open)
            conn.Close(); 
    }
}
于 2013-04-10T15:54:54.707 に答える