この質問にはすでに答えがあります。
これは私のコードです
searchDataContext db = new searchDataContext();
var query = (from p in db.SearchFirst(city, area)
select new
{
ID = p.Id,
Address = p.address,
Level = p.agahilevel
});
int count =query.Count();
// records
var q = query.Skip(Convert.ToInt32(start)).Take(Convert.ToInt32(width));
if (q.Count() > 0)
{
int index = 0;
str += "[";
foreach (var row in q)
{
if (index == 0)
このコードに誤りがあります
The query results cannot be enumerated more than once.
それをチェックして答えてください。
クエリを具体化します。
var addresses = (from p in db.SearchFirst(city, area)
select new
{
ID = p.Id,
Address = p.address,
Level = p.agahilevel
})
.Skip(Convert.ToInt32(start))
.Take(Convert.ToInt32(width))
.ToList();
それからEnumerable.Any
要素が含まれているかどうかを確認するには:
if(addresses.Any())
{
int index = 0; // ...
}
キャッシュされたクエリを使用してそれらを複数回繰り返すことはできません。
作るList<T>
それを試してみてください
var q = query.ToList(); // work on this
追加した場合.ToList()
あなたの質問にあなたの問題は解決されます