2013-03-11 4 views
1

я кодирования в эф 5 кода первого решения и у меня есть модель следующим образом:EntityFrameWork конфигурации модель отношения

public class User 
{ 
    public int Id {get;set;} 

    public int Role1Id {get; set;} 
    public Role Role1 {get; set;} 
} 

и другая модель:

public class Role 
{ 
    public int Id { get; set;} 

    public string Title {get; set;} 
} 

также настроить эту модель в другой класс следующим образом:

public class UserConfig : EntityTypeConfiguration<User> 
    { 
     public UserConfig() 
     { 
      ToTable("User", "dbo"); 
      // Here i want introduce Role1 as navigation property for Role1Id property 
     } 
    } 

вот вопрос: как настроить модель пользователя для введения Role1 в качестве навигационной опоры erty для свойства Role1Id?

+0

Вы сами пишете этот код? Entity Framework может создать этот сам сантехнический код. – rhughes

+0

Сначала я использую ef-код, поэтому сначала мне нужно скомпоновать мои модели. –

ответ

1

Вы можете использовать аннотацию:

public class User 
{ 
    public int Id {get;set;} 

    public int Role1Id {get; set;} 

    [ForeignKey("Role1Id")] 
    public Role Role1 {get; set;} 
} 
+0

Да, это работает, но я хочу настроить свою модель в моем классе UserConfig (через конфигурацию модели сущности). –

0

EF должен настроить его автоматически, пока идентификатор соответствует поле, генерируемое в схеме базы данных.

Вы можете попробовать настроить его в UserConfig со следующим:

HasRequired(user => user.Role1) 
    .WithRequiredDependent() 
    .Map(mapping => mapping.MapKey("Role1Id"); 

Это настраивает его требуется. Вы можете использовать метод HasOption, если это не требуется.