ここでは、さまざまなパラメータでユーザーを選択する方法の一覧を示します。 たとえば、GetUsers(string email, bool isActive)
に電話します。 Linq2SqlはすべてのアクティブユーザのリストをGetUsers(bool isActive)
で選択し、このリストをGetUsers(int userId, bool isActive)
に渡しますか?または、GetUsers(string email, bool isActive)
にデータベースへの呼び出しを1つだけ持ちますか?Linq2Sqlを使用した基本クラスからメソッドを呼び出す
internal IQueryable<User> GetUsers(bool isActive)
{
IQueryable<User> users = Context.Users;
if (isActive)
users = users.Active();
return users;
}
internal IQueryable<User> GetUsers(int userId, bool isActive)
{
return this.GetUsers(isActive).Where(item => item.Id == userId);
}
internal IQueryable<User> GetUsers(string email, bool isActive)
{
return this.GetUsers(isActive).Where(item => item.Email.Equals(email, StringComparison.OrdinalIgnoreCase));
}
"または、データベースへの呼び出しは1つしかありません"。 SQLプロファイラで試して、データベースに送信されるSQLクエリの数を確認してください。 – Steven