为什么我的计数行的原始查询总是返回-1?

我正在尝试检查表是否存在,但无法正常工作。

由于某种原因,count总是返回-1。 我已经在数据库中有一个表。 它应该返回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); 

ExecuteSqlCommand不返回数据,它总是返回带有返回码的int

您需要SqlQuery(string sql, params Object[] parameters)

 var count = db.Database.SqlQuery(sql4).Single(); 

ExecuteStoreQuery直接对数据源执行命令。

 int result = entity.ExecuteStoreQuery(@" IF EXISTS (SELECT * FROM sys.tables WHERE name = 'TableName') SELECT 1 ELSE SELECT 0 ").SingleOrDefault(); 

见这里的答案。