You'll have to perform two different searches; one for the custom records (C) and another for the Customer record. Once you've retrieved the results you can combine them however you'd like.
Customer search:
var customerAdvancedSearch = new CustomerSearchAdvanced
{
columns = new CustomerSearchRow
{
basic = new CustomerSearchRowBasic
{
internalId = new SearchColumnSelectField[] { new SearchColumnSelectField() },
firstName = new SearchColumnStringField[] { new SearchColumnStringField() },
// etc.
}
},
criteria = new CustomerSearch
{
basic = new CustomerSearchBasic
{
internalId = new SearchMultiSelectField
{
// internalId of the Customer
searchValue = new RecordRef[] { new RecordRef { internalId = "1234" } },
@operator = SearchMultiSelectFieldOperator.anyOf,
operatorSpecified = true
}
}
}
};
Custom record search (you can also use a CustomRecordSearchAdvanced
here if you only want specific columns):
var customRecordBasicSearch = new CustomRecordSearch
{
basic = new CustomRecordSearchBasic
{
customFieldList = new SearchCustomField[]
{
new SearchMultiSelectCustomField {
// your Customer internalId
searchValue = new ListOrRecordRef[] { new ListOrRecordRef { internalId = "1234" } },
scriptId = "your_field_id",
@operator = SearchMultiSelectFieldOperator.anyOf,
operatorSpecified = true
}
}
}
};