保存されたプロシージャでnhibernateのCreateSQLQueryを介してデータベースからデータを取得しようとしています。次のコードのようなもの。
次に、基本的にセッショントランザクションのコミットを実行していますが、コミットによって「更新できません」という例外がスローされます。CustomEntityDaoで更新ステートメントを実行しようとしています。
const string selectSQL = "EXEC GetDataSP @Id = :Id";
var query = Session.CreateSQLQuery(selectSQL);
query.SetString("Id", "10");
query.AddEntity(typeof (CustomEntityDao));
var entityList = query.List<CustomEntityDao>();
try
{
Session.Transaction.Commit();
}
catch (Exception ex)
{
throw ex;
}
私の質問は、コードでクエリを実行しているだけでわかるように、エンティティが変更されたものとして扱われる理由です。