У меня есть таблица в SqlServer, созданная, как показано ниже:
CREATE TABLE [dbo].[Reg](
[Reg_Id] [int] IDENTITY(1,1) NOT NULL,
[RiferimentoRRN_Reg] [int] NULL,
)
ALTER TABLE [dbo].[Reg] WITH CHECK ADD CONSTRAINT [FK_Reg_Reg] FOREIGN KEY([RiferimentoRRN_Reg])
REFERENCES [dbo].[Reg] ([Reg_Id])
Как вы можете видеть, у одной записи может быть связанная сущность (или нет), приходящая из той же таблицы.
Таким образом, Entity Framework создаст связанную сущность Reg, если RiferimentoRRN_Reg не равен нулю.
Как создать запрос (EF или просто SQL), который выбирает только записи со связанной сущностью или сущности, у которых нетЭто отношение без дублирующегося объекта?
Это может быть примером:
Reg_Id RiferimentoRRN_Reg
| 1 | |
| 2 | 1 |
| 3 | |
| 4 | 3 |
| 5 | |
Результат запроса должен быть:
Reg_Id RiferimentoRRN_Reg
| 2 | 1 |
| 4 | 3 |
| 5 | |
, потому что записис первичным ключом 3 и 1 ссылаются через внешний ключ, поэтому их следует избегать (на 5 никогда не ссылаются, и они должны быть включены в набор результатов).
Это позволяет мне использовать свойство навигации Entity Framework для перехода ксвязанная сущность (если имеется) избегает дублирования сущности.
Заранее спасибо и надеюсь, что мое объяснение будет достаточно ясным.