0

Я использую MVC3. Asp.Net 4.5, EF6, SQL Server 2008Как получить счетчик записей с использованием собственного SQL в сочетании с Entity Framework, ExecuteStoreQuery?

Мне нужно использовать собственный SQL для получения количества записей из таблицы, которая удовлетворяет определенному условию.

Я считаю, что мне нужен ExecuteStoreQuery. Я пробовал следующий код, но получаю исключения.

int RecordCount = (int)db.ExecuteStoreQuery<Int32>("select count(*) from myTable where RecordType = '{0}' and ParentId={1}", "MyRecordType", 1); 

Некоторая глупая ошибка кода, без сомнения. Руководство/Исправление было бы высоко оценено.

Спасибо.

+1

Не используйте EF возвращать количество записей, использовать ADO.NET. EF предназначен для возврата объектов/объектов из db. – Dbloch

+0

Хорошо, спасибо за это. У вас есть пример кода, пожалуйста? – SamJolly

ответ

1

Вот пример ado.net от Microsoft. MS Example

Вот C# пример

static public int AddProductCategory(string newName, string connString) 
    { 
     Int32 rowCount = 0; 
     string sql = "select count(*) from myTable where RecordType = '@recordType' and [email protected];"; 
     using (SqlConnection conn = new SqlConnection(connString)) 
     { 
      SqlCommand cmd = new SqlCommand(sql, conn); 
      cmd.Parameters.Add("@recordType", SqlDbType.VarChar); 
      cmd.Parameters["@recordType"].Value = "MyRecordType"; 
      cmd.Parameters.Add("@parentid", SqlDbType.Int); 
      cmd.Parameters["@parentid"].Value = 1; 
      try 
      { 
       conn.Open(); 
       rowCount = (Int32)cmd.ExecuteScalar(); 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine(ex.Message); 
      } 
     } 
     return (int)rowCount; 
    } 
+0

Спасибо, очень благодарен .... – SamJolly

+0

Np, после просмотра моего сообщения, есть очевидная очистка, которая будет сделана с кодом, но заставит вас закрыть. – Dbloch

Смежные вопросы