Linqを使用して2つのデータテーブルを比較しようとしています。非常に単純なテーブルで、1つの列だけですが、約44,000行あります。私は、次を使用しますが、ときに私はそれをトレース、もし(dr.Any())、それが取得するときに、それだけでそこに座って、次の行、または例外、実行されることはありません:Linq Any()タイムアウト
public static DataTable GetTableDiff(DataTable dt1, DataTable dt2)
{
DataTable dtDiff = new DataTable();
try
{
var dr = from r in dt1.AsEnumerable() where !dt2.AsEnumerable().Any(r2 => r["FacilityID"].ToString().Trim().ToLower() == r2["FacilityID"].ToString().Trim().ToLower()) select r;
if (dr.Any())
dtDiff = dr.CopyToDataTable();
}
catch (Exception ex)
{
}
return dtDiff;
}
私は最大要求の長さを設定しますweb.configで問題はないが変更はないことを確認してください。
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" maxRequestLength="1048576" />
44,000行が大きすぎるとは思われません。
[maxRequestLength](https://msdn.microsoft.com/en-us/library/e1f13641%28v=vs。 85%29.aspx) '入力ストリームバッファリングの制限値をKBで指定します。この制限は、例えば、大規模なファイルをサーバに投稿したユーザによるサービス拒否攻撃を防ぐために使用できます。これは、リクエストサイズに関連し、Linqクエリには関連しません。 –