Существует ли причина, по которой вы задаете критерии объединения в предложении where вместо самого соединения?
Я переписал ваш запрос, чтобы воспользоваться строго типизированными именами столбцов, что вы должны делать всякий раз, когда это возможно, поскольку вы можете обнаруживать проблемы во время компиляции, а не во время выполнения. Кроме того, используйте .ContainsString () вместо этого сцепленного gobblydegook для лучшей читаемости.
Dim ds As DataSet = UWP.Model.DB.Select("TOP 30 FirstName, LastName, EmailAddress, CustomerRowID, CompanyName")
.From(Customer.Schema)
.InnerJoin(Partner.PartnerIDColumn, Customer.PartnerIDColumn)
.Where(Customer.FirstNameColumn).ContainsString(SearchTerm)
.Or(Customer.LastNameColumn).ContainsString(SearchTerm)
.Or(Customer.EmailAddressColumn).ContainsString(SearchTerm)
.ExecuteDataSet()
Или, чтобы использовать свой оригинальный код, просто используйте перегрузку из четырех строк внутреннего соединения и укажите там столбцы. Я думаю, что вы попадаете в тупик, пытаясь выполнить объединение в предложении where, когда вам это не нужно.
Dim ds As DataSet = UWP.Model.DB.Select("TOP 30 FirstName, LastName, EmailAddress, CustomerRowID, CompanyName")
.From("Customer")
.InnerJoin("Partner","PartnerID","Customer","PartnerID")
.Where("FirstName").Like("%" & SearchTerm & "%")
.Or("LastName").Like("%" & SearchTerm & "%")
.Or("EmailAddress").Like("%" & SearchTerm & "%")
.ExecuteDataSet()