我正在尝试检查表是否存在,但无法正常工作。
由于某些原因,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不返回数据,它总是返回一个Int32,它是DDL/DML命令执行时SQL脚本处理的行数。
ExecuteSqlCommand
Int32
DDL/DML
您想要SqlQuery<TElement>(String, Object[])代替。
SqlQuery<TElement>(String, Object[])
var count = db.Database.SqlQuery<int>(sql4).Single();