Вы выбираете не уникальный объект, а объекты, содержащие условно уникальное значение атрибута.
Все управляемые объекты являются уникальными экземплярами, но ничто в Базовых данных не гарантирует, что значения атрибутов являются уникальными.В принципе, вы можете иметь произвольное количество уникальных управляемых объектов, которые имеют одинаковые значения атрибутов.Только отношения обеспечивают уникальную позицию в графе объектов.
Нет особой причины не извлекать конкретный объект, который содержит определенное значение, если это то, что требуется вашему приложению.
Я думаю, что вы прочитали предупреждения о том, что пытаться втиснуть значения ключей, подобные SQL, в сущности, а затем попытаться связать управляемые объекты вместе с этими ключами с помощью предикатов, например, сделать что-то вроде:
EntityOne{
sqlKey:string
}
EntityTwo{
sqlKey:string
}
… и затем пытается связать объекты двух сущностей с предикатами.
(anEntityOneObject.)sqlKey == anEntityTwoObject.sqlKey
… вместо того, чтобы просто установить отношение в модели данных.
EntityOne{
two<-->EntityTwo.entityOne
}
EntityTwo{
one<-->EntityOne.two
}
… и просто найти связанные объекты с помощью AnEntityOneObj.two
.