2016-11-30 3 views
1

Мы обновляем нашу базу данных первой, и есть 3 таблицы:Как Entity Framework (6.1.3) называют ICollections?

Zoo_Keeper

Zoo_Mammal

Zoo_Reptile

(имена изменены для простоты!)


хранитель может иметь много млекопитающих.

У Хранителя может быть много Рептилий.

Внешний ключ на Zoo_Mammal ссылки на Zoo_Keeper.

Внешний ключ на Zoo_Reptile ссылки на Zoo_Keeper.


В EntityFramework мы используем «Model Update из базы данных» функциональность и наш Zoo_Keeper автогенерируемая класс выглядит следующим образом:

namespace ZooApp.DataAccess.EntityDataModels 
{ 
    using System; 
    using System.Collections.Generic; 

    public partial class Zoo_Keeper 
    { 
     public Zoo_Keeper() 
     { 
      this.Mammals = new HashSet<Zoo_Mammal>(); 
      this.Zoo_Reptile = new HashSet<Zoo_Reptile>(); 
     } 

     //some properties 

     public virtual ICollection<Zoo_Mammal> Mammals { get; set; } 
     public virtual ICollection<Zoo_Reptile> Zoo_Reptile { get; set; } 
    } 
} 

Как EF придумали имена для ICollections? (Млекопитающие, Zoo_Reptile)

Мы смущены тем, почему один разделил префикс «Зоопарк», а другой - нет. Что такое наша база данных, которая заставляет EF называть отношения по-разному?

Мы проверили имена FK, но они оба выглядят последователен:

FK_Zoo_Mammal_Zoo_Keeper

FK_Zoo_Reptile_Zoo_Keeper

+0

Каковы имена столбцов в таблицах? –

+0

KeeperID, MammalID, ReptileID (PKs), KeeperID, KeeperID (FKs) – FBryant87

ответ

0

Включает эти пользовательские имена были настроены в EDMX-файл с помощью тега NavigationProperty:

<EntityType Name="Zoo_Keeper"> 
... 
<NavigationProperty Name="Mammals" Relationship="Self.FK_Zoo_Mammal_Zoo_Keeper" FromRole="Zoo_Keeper" ToRole="Zoo_Mammal" /> 
</EntityType> 
Смежные вопросы