您可以在PersistenceManager上设置一个自定义的DefaultQueryStrategy。例如下面就用通常的默认值和定制TransactionSettings,2分钟超时:
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;
如果你不想改变DefaultQueryStrategy整个下午,你可以通过在RdbQuery查询策略。例如:
var query = new RdbQuery(typeof(Customer));
query.QueryStrategy = new QueryStrategy(myPM.DefaultQueryStrategy, settings);
可能超时来自WCF或数据库。如果更改事务超时值不起作用,请从您的BOS .config文件中发布< binding>元素。
这与WCF有什么关系? – Tim
如果他使用WCF,超时可能是由请求操作超时引起的。错误消息没有什么帮助 - 它可能是WCF,事务或DB查询超时。 –