У меня есть таблица в 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 для перехода к связанному объекту (если есть), избегая любого дублированного объекта.
Спасибо заранее и надеюсь, что мои объяснения будут достаточно ясными .
Просто быстрый вопрос из головы. Но обратите внимание, что комментарий JamieD77, указанный выше, не будет обрабатываться в этом запросе.
UPDATE
Ниже приведенный запрос должен обрабатывать JamieDD77's comment
Я уверен, что вы сможете легко конвертировать это в запрос LINQ.