次のコードの目的は、使用可能な ID を見つけることです。
私がそれを書いたときの私の考えは、実行されるたびに、ローカル変数query.Any()
の新しくインクリメントされた値でクエリが再度実行されるということでした。これは、クエリが実行されるまで評価されないid
という私の知識から生まれました。id
私の実験の結果から、これがどのように機能するかではないことがわかります。LINQ to EF を使用するスタイルを維持しながら、指定された目標を達成するためにコードを書き直す方法を知りたいですか?
簡単な方法で書き直す方法を知っています。私の目標は、LINQ 式の遅延実行とその実行コンテキストをよりよく理解することです。
int id = 4700;
var query = from c in Advertisers
where c.ID == id
select c;
int loopCount = 0;
while(query.Any())
{
if(++loopCount == 5)
{
Console.WriteLine ("Cannot find a safe id.");
break;
}
Console.WriteLine ("Already a record with " + id);
id++;
}
Console.WriteLine ("The available id is " + id);