为什么我的计数行的原始查询总是返回-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
。
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();
见这里的答案。