Tôi có một câu hỏi về làm thế nào để nhận ra một mối quan hệ Bảng trong Microsoft SQL Server 2012.Parent-Child one-to-one Relation cùng Bảng
Tôi có một Table (MyTable) mà nên tổ chức một Phụ huynh/trẻ em kết cấu. Một phụ huynh có thể có một trẻ em và một trẻ em chỉ có một phụ huynh. Đây là một mối quan hệ một-một-cổ điển. Mục nhập cao nhất rõ ràng có thể không có cha mẹ. (Điều này được mô hình hóa thông qua một thuộc tính nullable)
Khi tôi cố gắng mô hình hóa điều này trong MS-SQL, tôi nhận được một bảng như sau.
Đây là Mã của tôi:
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
Các uniqe Hạn chế nên đảm bảo rằng có ít nhất một phụ huynh cho một đứa trẻ.
BUT Entity Framework sẽ không cho phép tôi thay đổi thuộc tính thành mối quan hệ một-một. Nó luôn tạo ra mối quan hệ một-nhiều.
EDIT: Mã này là DB-Trước tiên.
Bạn có bất kỳ ý tưởng nào về cách tạo mô hình này đúng cách trong MS-SQL và EntityFramework không?
Bạn có thể cho bạn biết định nghĩa/thực thể EF không? – ChrFin
Theo định nghĩa, bạn có nghĩa là mã được tạo ra, hoặc đại diện trực quan trong VisualStudio bao gồm các thuộc tính (.edmx-File)? – sternze
Oh - DB-trước. Tôi cho rằng Code-First. Xin lỗi không thể giúp đỡ với DB-đầu tiên - Tôi dị ứng agains * .edmx tập tin ... – ChrFin