2012-04-20 3 views
1

Как о определить один ко многим отношений в EF с различным первичным и внешним ключом именем
Обновлены
Ef код первые один ко многим отношений

Public class Tb1 
{ 
[Key] 
public int ID{get; set;}   // primary 
**public int foreignKey{get; set;} //foreign key** 
public string name{get; set;} 
[Foreign("foreignKey")] 
public virtual ICollection<Tb2> Tb2{ get; set; } 
} 

Public class Tb2 
{ 
[Key] 
public int ID {get; set;} //primary 
public int tb1ID {get; set} 
public string address {get; set;} 
} 


Здесь я хочу один ко многому relationsip на Первичный ключ: foreignKey на TB1
иностранный kye: tb1ID на TB2
КАК ??

ответ

1

Мой номенклатурный подход будет включать в себя свойство навигации. Поэтому я бы изменил Tb2 следующим образом:

Public class Tb2 
{ 
    [Key] 
    public int ID {get; set;} //primary 
    public int Tb1ID {get; set;} //notice I changed case on this variable as well 
    public Tb1 Tb1 {get; set;} //this is the new variable 
    public string address {get; set;} 
} 

Код сначала должен иметь возможность автоматически понимать отношения сейчас. Если вы не хотите свойство Tb1ID, вы можете удалить его, и он все равно будет работать нормально.

+0

получение null для Tb1.Tb2 – RollerCosta

+0

Когда вы получите нуль? Когда вы извлекаете его из базы данных? Если вы используете код сначала с DbRepository, он не ленится загружать его, как вы могли ожидать. Попробуйте сделать следующее, чтобы получить Tb2 со всеми связанными Tb1. 'var result = repository.Tb2s.Include (t => t.Tb1);' –

+0

lazy loading изначально был установлен в false db.Configuration.LazyLoadingEnabled = false; – RollerCosta

Смежные вопросы