EF 4.1 Code First多个结果集

时间:2011-11-29 18:06:43

标签: entity-framework ef-code-first

我需要执行返回多个结果集的Raw SQL查询。这可能在EF CF中吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

描述

是的,你可以! ;)您也可以在Entity Framework Code First中使用DbCommand执行原始SQL查询。

您可以使用多个结果集执行查询,并使用NextResult()类的SqlDataReader方法跳转到下一个结果集。

示例

namespace MyNamespace
{
    public class MyDbContext : DbContext
    {

    }

    public class Test
    {
        public void Test()
        {
            MyDbContext context = new MyDbContext();

            DbCommand db = context.Database.Connection.CreateCommand();
            db.CommandText = "SELECT propertie1 FROM Table1; SELECT propertie1 from Table2";
            try
            {
                DbDataReader reader = db.ExecuteReader();

                while (reader.Read())
                {
                    // read your data from result set 1
                    string value = Convert.ToString(reader["propertie1"]);
                }

                reader.NextResult();

                while (reader.Read())
                {
                    // read your data from result set 2
                    string value = Convert.ToString(reader["propertie1"]);
                }
            }
            catch
            {
                // Exception handling
            }
            finally
            {
                if (db.Connection.State != ConnectionState.Closed)
                    db.Connection.Close();
            }
        }
    }
}

更多信息