2013-07-25 1 views
1

Я использую Entity Framework в связи с методом аутентификации MVC 4. Я создал обычай UserProfile, чтобы включить некоторые другие таблицы.MVC 4 UserProfile Внешний ключ/не допускает ошибки nulls

UserProfile

[Table("UserProfile")] 
public class UserProfile 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int UserId { get; set; } 
    public string UserName { get; set; } 

    public int CompanyId { get; set; } 

    [ForeignKey("CompanyId")] 
    public virtual Company Company { get; set; } 
} 

Компания

public class Company 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
} 

Теперь WebSecurity.CreateUserAndAccount("MyUser", "MyPassword"); бросает мне следующее исключение:

Cannot insert the value NULL into column 'CompanyId', table 'aspnet.web-67.dbo.UserProfile'; column does not allow nulls. INSERT fails. The statement has been terminated.

Я могу удалить ForeignKey, но после этого ленивая загрузка, похоже, больше не работает.

+0

Оплаты компания? Я не понимаю этого. –

+0

Lool просто ошибка. –

ответ

2

Я думаю, что CompanyID колонна UserProfile таблица была создана не позволяют обнуляет в БД. Вы можете написать его как

public int? CompanyId { get; set; }

или вы должны добавить CompanyID значения Befor создать пользователь

+0

Нет. Его работа отлично. –

+0

Добро пожаловать)) –

+1

Вы также можете написать как 'int?'. 'Nullable <>' выглядит немного старомодным. –