Database first Entity Framework mapping unique foreign keys as one to many
.net, c#, database-first, entity-framework, sql
Solution
Entity framework doesn't support unique keys yet so this information is really ignored and one to many relation is mapped. The only way to use one to one relation in EF is through shared primary key (Navigation's ID will be FK to Page's ID).
Problem
I have a table in Microsoft SQL Server 2008 R2 called `Page` with a primary key called `ID`. I have another table called `Navigation` with a column `PageID`. `PageID` is a unique foreign key reference to the `ID` column of `Page`. This creates a one to one relationship between `Navigation` and `Page` records. When generating models from the database, it creates a one to many relationship where a `Page` contains a list of `Navigation` records. Is this simply the Entity Framework detecting that there is a foreign key involved and ignoring the uniqueness of the columns in the database? The SQL for the `PageID` column in `Navigation` is: ``` [PageID] INTEGER FOREIGN KEY REFERENCES [Page](ID) UNIQUE NOT NULL ``` The SQL for the `ID` column in `Page` is: ``` [ID] INTEGER PRIMARY KEY IDENTITY(0, 1) NOT NULL ``` Here is the solution I had originally, which is what Ladislav was mentioning. The SQL for the `PageID` column in `Navigation` was: ``` [ID] INTEGER PRIMARY KEY FOREIGN KEY REFERENCES [Page](ID) NOT NULL ```