如果在运行LINQ后没有匹配,变量会保持什么

use*_*389 0 c# linq linq-to-sql webmethod

[WebMethod]
public List<FavoritesTO> getFavorites(string username)
{
    using (FavoritesDataContext db = new FavoritesDataContext ())
    {
        var query = from row in db.Favorites
                    where username == row.username
                    select row.imdbId;
        // here
    }
}
Run Code Online (Sandbox Code Playgroud)

在标记为此处的区域中,查询变量将保留什么,例如,如果我的表中没有与传递给函数的用户名匹配的用户名?

Jon*_*eet 5

query将只是查询的值- 直到您尝试评估结果,没有人知道是否有任何.之后,我怀疑LINQ to SQL会缓存结果 - 但它在概念上仍然只是一个查询.

如果你问是null不是,不 - 它只是一个空序列.所以query.Count()会返回0,query.Any()会返回false