Entity Framework: field of composite key cannot be nullable?
asp.net-mvc-3, c#, ef-code-first, entity-framework
Solution
Answer from Raphael lead me to another search. Here is the why it is not possible (answer from Cobsy):
What's wrong with nullable columns in composite primary keys?
In short: `NULL == NULL` -> false
Wierd. The solution for me is to add Id column into Model.
BTW: MySQL allow me not to define Primary Key, then I'm allowed to have such schema - EF complains about not defining the key :-(.
Problem
I have a model with composite key - the row is the key: ``` public class Item { [Key, Column(Order = 0)] public int UserId { get; set; } [Key, Column(Order = 1)] public DateTime? Date { get; set; } } ``` Running the code below it throws an exception `DbEntityValidationException` with message: `The Date field is required.`: ``` var it = new Item { Date = null, UserId = 2 }; m_Entities.Items.Add(it); m_Entities.SaveChanges(); // throws exception ``` (`m_Entities` is usual `DbContext` descendant with Items defined as `DbSet<Item>`) Why is the `Date` required if it can be `null` (declared as `DateTime?`) ? And how to allow `null` to be a valid value for `Date`?