現在、データベース アクセスに Entity Framework 4.3 を使用する MVC 3 Web サイトに展開しています。
アプリケーションは Visual Studio 開発サーバーでは期待どおりに動作しますが、リモート サーバーにデプロイされると、クエリが予期せず反応します。
そのソートされたデータを介してソートされたリストとページを表示する必要があります
Web サーバーと物理サーバー マシンを再起動してキャッシュがなくなったことを確認し、リモート サーバーでクリーンな IIS サイトを使用してみても同じ結果が得られました。
[編集]: 私も完全に削除し、クリーンなサイトに再公開しました
開発機について
リモート サーバー上
テーブルを生成するために使用しているコード:
コントローラ
[HttpGet]
public virtual ActionResult Index(string filter = "", int? page = null)
{
page = page ?? 1;
filter = filter.Trim().ToLower();
int pageSize = Properties.Settings.Default.DefaultSPPageSize;
int skipNum = (page.Value - 1) * pageSize;
IQueryable<SamplePoint> spList;
var points = new HashSet<string>(Settings.Default.SamplePointFilter.Split(','));
if (filter != "")
spList = db.SamplePoints.Where(e=>
points.Any(p=> e.Id.StartsWith(p))
&& e.Id.ToLower().Trim().StartsWith(filter.ToLower()))
.OrderBy(o => o.Id);
else
spList = db.SamplePoints.Where(e =>
points.Any(p => e.Id.StartsWith(p))
&& e.Id.Trim().StartsWith(filter)).OrderBy(o => o.Id);
List<SamplePoint> pageItems;
if (page != 0)
{
pageItems = spList.Skip(skipNum).Take(pageSize).ToList();
}
else
{
pageItems = spList.OrderBy(o=> o.Id).ToList();
}
int _totPages = Convert.ToInt32(pageSize > 0 ? Math.Ceiling(((double)spList.Count() / (double)pageSize)) : 0);
var vModel = new SamplePointListViewModel(pageItems, filter) { LocationList = FilterListItems, TotalPages = _totPages, CurrentPage = page.Value };
return View(this.IsExcelRequest() ? MVC.Reports.Views.Excel.SamplePointList : MVC.Reports.Views.SamplePointList, vModel);
}