Ho una domanda su come realizzare un rapporto di tabella in Microsoft SQL-Server 2012.padre-figlio one-to-one Relation stessa tabella
Ho una tabella (MyTable), che dovrebbe contenere un padre/figlio struttura. Un genitore può avere un figlio e un bambino ha un solo genitore. Questa è una classica relazione uno a uno. La voce più in alto ovviamente non può avere un genitore. (Questo è modellato tramite una proprietà nullable)
Quando provo a modellare questo in MS-SQL, ricevo una tabella come segue.
Ecco il mio codice:
CREATE TABLE [dbo].[MyTable](
[Id] [uniqueidentifier] PRIMARY KEY NOT NULL,
[Name] [nvarchar](200) NOT NULL,
[ParentObjectId] [uniqueidentifier] NULL
)
GO
ALTER TABLE [dbo].[MyTable] WITH CHECK ADD CONSTRAINT [FK_MyTable_ParentObject] FOREIGN KEY([ParentObjectId])
REFERENCES [dbo].[MyTable] ([Id])
GO
ALTER TABLE [dbo].[MyTable] WITH CHECK ADD CONSTRAINT [Unique_ParentId] UNIQUE(ParentObjectId)
GO
ALTER TABLE [dbo].[MyTable] CHECK CONSTRAINT [FK_MyTable_ParentObject]
GO
L'Uniqe vincolo dovrebbe assicurare che ci sia al massimo un genitore per un bambino.
MA Entity Framework non mi consente di modificare le proprietà in modo da essere una relazione uno a uno. Genera sempre una relazione uno-a-molti.
MODIFICA: Il codice è DB-First.
Avete qualche idea su come modellarlo correttamente in MS-SQL ed EntityFramework?
Puoi mostrarti definizione/entità EF? – ChrFin
Per definizione, intendi il codice generato o la rappresentazione visiva in VisualStudio comprese le proprietà (.edmx-File)? – sternze
Oh - DB-first. Ho assunto il codice prima. Spiacente non posso aiutare con DB-first - I am agains agains * .edmx files ... – ChrFin