Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does my raw query to count rows always returns -1?

I'm trying to check if table exists, but not working correctly.

For some reason, count always returns -1. I already have a table in the database. It should return 1?

SearchEntities db = new SearchEntities();

var qry3 = "";
var sql4 = "SELECT Count(*) FROM SearchDB.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'portland'";
var count = db.Database.ExecuteSqlCommand(sql4);
like image 458
user1929393 Avatar asked Oct 12 '25 06:10

user1929393


1 Answers

ExecuteSqlCommand doesn't return data, it always returns an Int32, which is the number of rows processed by the SQL script when it's a DDL/DML command.

You want SqlQuery<TElement>(String, Object[]) instead.

var count = db.Database.SqlQuery<int>(sql4).Single();
like image 83
user247702 Avatar answered Oct 14 '25 20:10

user247702