PersistenceManagerでカスタムDefaultQueryStrategyを設定できます。例えば、以下は2分のタイムアウトで通常のデフォルトとカスタムTransactionSettingsを使用します。
var settings = new TransactionSettings(
UseDTCOption.UseConfigurationSetting,
System.Transactions.IsolationLevel.ReadCommitted,
new TimeSpan(0, 2, 0));
var queryStrategy = new QueryStrategy(QueryStrategy.Normal, settings);
myPM.DefaultQueryStrategy = queryStrategy;
あなたが全体のPMのためDefaultQueryStrategyを変更したくない場合、あなたはRdbQuery上のクエリ戦略を渡すことができます。例:
var query = new RdbQuery(typeof(Customer));
query.QueryStrategy = new QueryStrategy(myPM.DefaultQueryStrategy, settings);
タイムアウトがWCFまたはデータベースから発生している可能性があります。トランザクションのタイムアウト値を変更しても問題が解決しない場合は、< binding>要素をBOS .configファイルから転記してください。
これはWCFと何が関係していますか? – Tim
彼がWCFを使用している場合、タイムアウトは要求操作がタイムアウトすることによって発生する可能性があります。エラーメッセージはそれほど役に立ちません.WCF、トランザクション、またはDBクエリがタイムアウトする可能性があります。 –