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

后端 未结 2 338
醉话见心
醉话见心 2021-01-20 15:38

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

相关标签:
2条回答
  • 2021-01-20 15:54

    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();
    
    0 讨论(0)
  • 2021-01-20 16:10

    ExecuteStoreQuery Directly Execute Commands Against the Data Source.

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

    See answer here.

    0 讨论(0)
提交回复
热议问题