Entity Framework 4.1 - Отображение внешнего ключа в POCO - PullRequest
0 голосов
/ 11 ноября 2011

Со следующей схемой базы данных:

Пользователь: UserID (первичный ключ)
UserInfo: UserInfoID (первичный ключ), UserID (foreignKey), [Другие столбцы с данными UserInfo]

Пользователь и UserInfo имеют отношение 1-1.Я хочу сопоставить эту схему со следующими POCO:

public class User
{ 
   [Key]
   public int UserID {get;set;}

   public virtual UserInfo userinfo {get;set;}
}
public class UserInfo
{
  [Key]
  public int UserInfoID {get;set;}

  public int UserID {get;set;}

  [ForeignKey("UserID")]
  public virtual User User {get; set;}

  ... Other properties of UserInfo...
}

По сути, я хочу иметь возможность загружать объект Users, а также иметь соответствующий объект UserInfo.Это кажется простой задачей, но я не смог найти правильную комбинацию атрибутов и / или свободного API для этого.

РЕДАКТИРОВАТЬ: Я обнаружил, что создание UserInfoСобственность в Users ICollection, то все правильно подключено.Поэтому мой вопрос сейчас заключается в том, существует ли способ избежать использования ICollection, поскольку я знаю, что у пользователя будет 1 или 0 связанных записей UserInfo.

1 Ответ

2 голосов
/ 11 ноября 2011

Для сценариев один на один вы должны использовать то же свойство, что и key, и fk для обеих сущностей. Попробуйте использовать свойство UserId в качестве идентификатора сущности UserInfo, а затем сопоставьте свойство Fk со свойством User.

...