Вставка внешнего ключа Entity Framework с автоматическим идентификатором

У меня есть 2 объекта User и User_Profile ( отношения один к одному). Я связал их следующим образом:

public class User
{
   [Key]   
   [ForeignKey("user_profile")]
   public int user_id {get;set;}

   public string username {get;set;}
   public string email {get;set;}

   public virtual User_Proile user_profile {get;set;}
}


public class User_Profile
{
   [Key]   
   public int user_id {get;set;}

   public string firstname {get;set;}
   public string lastname {get;set;}
}

user_id - это PK в таблицах User и User_Profile SQL Server. Он также установлен как столбец «Идентификация» в таблице «Пользователь».

Когда я пытаюсь вставить новую запись через EFDBContext Add / SaveChanges. Я получаю следующую ошибку: «user_id не может быть NULL в таблице User_Profile» Это имеет смысл, поскольку это столбец PK. Я надеялся, что EF сможет взять Identity user_id от пользователей и вставить его в User_Profile user_id при сохранении.

Возможно ли это, и если да, то как мне это реализовать?

ОБНОВЛЕНИЕ: Обратите внимание, что я вручную создал таблицы БД и классы кода, поэтому у меня нет доступа к StoreGeneratedPattern через файл .edmx.

7
задан Slauma 28 October 2011 в 21:17
поделиться