Я пытался заставить EF4 CTP5 хорошо работать с существующей базой данных, но столкнулся с некоторыми основными проблемами сопоставления.
У меня пока есть два модельных класса:
public class Job
{
[Key, Column(Order = 0)]
public int JobNumber { get; set; }
[Key, Column(Order = 1)]
public int VersionNumber { get; set; }
public virtual User OwnedBy { get; set; }
}
и
[Table("Usernames")]
public class User
{
[Key]
public string Username { get; set; }
public string EmailAddress { get; set; }
public bool IsAdministrator { get; set; }
}
И у меня есть класс DbContext, выставляющий их как IDbSet
Я могу запрашивать своих пользователей, но как только я добавил поле OwnedBy в класс Job, я начал получать эту ошибку во всех моих тестах для Jobs:
Недопустимое имя столбца «UserUsername».
Я хочу, чтобы это вело себя как NHibernate «многие к одному», тогда как я думаю, что EF4 рассматривает его как сложный тип. Как это сделать?