Я думаю, что это должно работать.
Вы знакомы с получением сгенерированного SQL из этого запроса?
SubSonic.SqlQuery q = new Select(PastAwardName.Schema.TableName + ".*", PastAwardType.Schema.TableName + ".*")
.From(PastAwardName.Schema)
.InnerJoin(PastAwardType.Schema.TableName, PastAwardType.Columns.VolID, PastAwardName.Schema.TableName, PastAwardName.Columns.VolID)
.Where(PastAwardName.Columns.LName).IsEqualTo(this.txtSearchName.Text)
.Or(PastAwardName.Columns.FName).IsEqualTo(this.txtSearchName.Text)
.OrderAsc(PastAwardType.Columns.AwardYear);
string sql = q.BuildSqlStatement();
Проверьте значение sql (с точкой останова на этой строке), чтобы получить дополнительные сведения о проблеме.
Для подстановочного знака - используйте метод ContainsString () вместо жесткого подстановочного знака, например:
.Where(PastAwardName.Columns.LName).ContainsString(this.txtSearchName.Text)
Это автоматически добавит характерный для поставщика подстановочный знак в начало и конец параметра. Вы также можете сделать StartsWith () и EndsWith ().