複数の列による並べ替えをサポートする bindingSource を作成し、それを bindingNavigator にアタッチしたいと考えています。私はwinformsとcode-first EFを使用しています。
次の方法でクエリを作成しています
DbSet<Person> dset = DBContext.People;
string Searchstr ="Smith";
string sortby ="LastName, FirstName"
var qry = (IOrderedQueryable<Person>) dset.Where(
p => p.LastName.Contains(Searchstr) )
.OrderBy(sortby);
binding.datasource = dset.Local.ToBindingList(); // where binding has been dropped on form at design time.
binding.sort = sortby; // this is the line that screws up the sort order
ここに記載されている拡張メソッドを使用して、複数列の order by を実現しています。