2008-12-10 5 views
1
ScalarQuery<int> query = new ScalarQuery<int>(typeof(Role), 
         "select count(role.RoleId) from Role as role"); 
return query.Execute(); 

Он не справляется с исключением invalidcast, но преуспевает, когда счетчик заменяется макс.Get Row Count InvalidCast Exception from ScalarQuery

ответ

1

Редактировать: Некоторые базы данных будут возвращаться долго для запросов count. Например, SQL Server.

ScalarQuery<long> query = new ScalarQuery<long>(typeof(Role), 
          "select count(r) from Role r"); 
return query.Execute(); 
+0

Пыталась, но до сих пор не удается. В любом случае, спасибо. – suhair 2008-12-10 12:10:33

0

Не совсем ответ на вопрос, но рекомендация: если вы хотите, чтобы избежать хлопот того, чтобы выдать запрос на все самостоятельно, а затем просто использовать ActiveRecordMediator<T>.Count() (который имеет перегрузки, которые принимают критерии/строки фильтра, если вы хотите условное число), и все возвращают int ко всем базам данных.

0

Основываясь на тестировании ответы, данные на сегодняшний день следующие работали для меня (в том числе, где положение):

// Option 1 
int result = ActiveRecordMediator<Post>.Count("BlogId = ?", blogId); 

// Option 2 
CountQuery query = new CountQuery(typeof(Post), "BlogId = ?", blogId); 
int result = ActiveRecordMediator.ExecuteQuery(query); 

// Option 3 
ScalarQuery<long> query= new ScalarQuery<long>(typeof(Post), 
    "SELECT COUNT(*) FROM Post WHERE BlogId = ?", blogId); 
long result = query.Execute(); 

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

  • Нет связанных вопросов^_^