1

の自動インクリメント主キーを取得したいのですが、これを行うために T-SQL を使用することを理解しました。だから私は次の方法を書きました:

public int GetLastNewsID()
{
    const string command = @"SELECT IDENT_CURRENT ('{0}') AS Current_Identity;";
    int id = EntityModel.ExecuteStoreCommand(command, "News");
    return id;
}

ただし、-1 が返されますが、現在は 4 である必要があります。

PS: SQL Management Studio で T-SQL の下で実行すると、4 が返されます

USE T;
GO
SELECT IDENT_CURRENT ('NEWS') AS Current_Identity;
GO
4

2 に答える 2

6

ExecuteStoreQueryを使用する必要があります

public int GetLastNewsID()
{
    const string command = @"SELECT IDENT_CURRENT ({0}) AS Current_Identity;";
    var id = EntityModel.ExecuteStoreQuery<decimal>(command, "News").First();

    return Convert.ToInt32(id);
}

SQL クエリは を返すdecimalので、に変換する必要がありますint

于 2011-10-13T07:23:09.033 に答える
0

戻り値に関する部分を読む:

http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.executestorecommand.aspx

于 2011-10-13T07:23:41.237 に答える