私はLLBLGenを使用していて、次のようなコードがあります。
if (onlyRecentMessages)
{
messageBucket.PredicateExpression.Add(MessageFields.DateEffective >= DateTime.Today.AddDays(-30));
}
var messageEntities = new EntityCollection<MessageEntity>();
using (var myAdapter = PersistenceLayer.GetDataAccessAdapter())
{
myAdapter.FetchEntityCollection(messageEntities, messageBucket);
}
現在、FetchEntityCollection行でSqlExceptionが発生しています。エラーは次のとおりです。System.Data.SqlClient.SqlException:着信表形式データストリーム(TDS)リモートプロシージャコール(RPC)プロトコルストリームが正しくありません。このRPC要求で提供されたパラメーターが多すぎます。最大は2100です。
しかし、それは補足です。私が実際に実行できるようにしたいのは、生成されたSQLをコードのカスタム例外に含めることです。たとえば、次のようなものです。
using (var myAdapter = PersistenceLayer.GetDataAccessAdapter())
{
try
{
myAdapter.FetchEntityCollection(messageEntities, messageBucket);
}
catch (SqlException ex)
{
throw new CustomSqlException(ex, myAdapter.GeneratedSqlFromLastOperation);
}
}
もちろん、GeneratedSqlFromLastOperationのようなプロパティはありません。ロギングを構成できることは承知していますが、これらの種類のエラーが発生したときに既存の例外ロギングインフラストラクチャがより多くの情報を提供できるように、情報をスタックトラック/例外に直接保持したいと思います。
ありがとう!スティーブ