varbinary(max) 列タイプの行を挿入した後、Identity 値を取得するのに問題があります。これが私が使用するコードです(PetaPoco Pageによると):
using (var uow = UnitOfWorkFactory.Create())
{
var result = uow.Db.Execute(@"INSERT INTO LOG_EXPORT (DateTime, FileName, FileSize, FormatID, Lines, Login, UPO, XMLFile)
VALUES (@0, @1, @2, @3, @4, @5, @6, @7)", logExport.DateTime, logExport.FileName, logExport.FileSize, logExport.FormatID, logExport.Lines, logExport.LogExportId, new SqlParameter() { SqlDbType = SqlDbType.VarBinary, Value = DBNull.Value }, new SqlParameter() { SqlDbType = SqlDbType.VarBinary, Value = DBNull.Value });
uow.Commit();
return result;
}
返された行数を返します。私が使用したときと同じ結果を得たい:
var result = uow.Db.Insert(logExport);
uow.Commit();
return result;
私も使用しようとしました:
var result = uow.Db.ExecuteScalar<int>("SELECT SCOPE_IDENTITY()");
uow.Commit();
return result;
しかし、エラーが発生しました。「SELECT max()」は使いたくありません。これを行うための最良の解決策は何ですか?
ありがとう、なぶ