В дополнение к правильному ответу @jsolum, здесь есть работающий поставщик, который использует аннотации fastxml для проверки видимости полей и методов:
@Provider
public class JsonConfig implements ContextResolver<Jsonb> {
@Override
public Jsonb getContext(Class aClass) {
JsonbConfig config = new JsonbConfig();
config.withPropertyVisibilityStrategy(new PropertyVisibilityStrategy() {
@Override
public boolean isVisible(Field field) {
JsonIgnore annotation = field.getAnnotation(JsonIgnore.class);
return annotation == null || !annotation.value();
}
@Override
public boolean isVisible(Method method) {
JsonIgnore annotation = method.getAnnotation(JsonIgnore.class);
return annotation == null || !annotation.value();
}
});
return JsonbBuilder.create(config);
}
}
Ну, можно сделать проекцию сначала:
var qry = db.Customers.Select(cust => new {cust.ID, cust.Name, cust.Region})
.Distinct();
Или в синтаксисе запроса:
var qry = (from cust in db.Customers
select new {cust.ID, cust.Name, cust.Region}).Distinct();
Это делает?
"Отличным несколькими столбцами" то, что Вы действительно имеете в виду, является группой.
Когда Вы просите отличный, это означает, что Вы получаете ВСЕ отличные строки, или, группа при помощи всех столбцов в таблице.
Если Вы хотите только получить отличные группировки для подмножества столбцов, то используйте группу в Вашем пункте, указывая столбцы для группировки. Затем выберите группы, поскольку Вы только хотите один набор ключей для каждой группы.