2015-03-11 4 views
0

Я работаю над пониманием EF (с использованием EF6). Я хочу перейти к первому маршруту кода, поскольку это, как представляется, тенденция. То, что я пытаюсь сделать, - это выяснить, как моделировать то, что было бы несколькими таблицами объединения в EF-модели.Entity Framework Code Первая модель от проектирования базы данных

Мои главные подразделения - Персонал и Школа. Сотрудник может работать в нескольких школах с несколькими ролями (компьютер, 1-й класс, история, хранитель и т. Д.).

Пример: Учитель Боб Джонс преподает компьютеры в Lincoln Elementary and Alpha Science в Truman Elementary.

Из конструкции таблицы базы данных, я бы, вероятно, есть столы для: - Персонал - Школа - StaffRole - Lookup стол с различными ролями - SchoolStaffRole - Регистрация штаба, школа, & StaffRole

Однако , Я не совсем уверен, как выглядят мои модели EF. Я начал со следующего, но это явно не делает отношения правильно. Что такое действительный метод? Является ли это тем, что мне нужен класс SchoolStaffRole, и это то, на что ссылаются в моделях «Персонал» и «Школа»?

class School 
{ 
    int ID{get;} 
    virtual ICollection<Staff> Staff{get;set;} 
} 
class Staff : Member 
{ 
    int ID{get;} 
    virtual ICollection<School> Schools{get;set;} 
    virtual ICollection<SchoolRole> Roles{get;set;} 
} 

ответ

0

Было бы полезно, если бы можно было добавить таблицы SQL, которые вы пытаетесь отобразить в на ваш вопрос

попробовать ИЗБЕЖАТЬ наследство столько, сколько вы можете, Staff :Member не будет весело

в любом случае дайте это сделать

public class Staff : Member 
{ 
    public int ID{get;set;} 

} 
public class School 
{ 
    public int ID{get;set;} 

} 


public class SchoolStaff 
{ 
    public int ID{get;set;} 

    [ForeignKey("School")] 
    public int SchoolID {get;set;} 
    [ForeignKey("SchoolID")] 
    public virtual School School {get;set;} 

    [ForeignKey("Staff")] 
    public int StaffID {get;set;} 
    [ForeignKey("StaffID")] 
    public virtual Staff Staff {get;set;} 

    virtual ICollection<SchoolStaffRole> Roles{get;set;} 
} 


public class SchoolStaffRole 
{ 
    public int ID{get;set;} 

    [ForeignKey("SchoolStaff")] 
    public int SchoolStaffID {get;set;} 
    [ForeignKey("SchoolStaffID")] 
    public virtual SchoolStaff SchoolStaff {get;set;} 

    [ForeignKey("SchoolRole")] 
    public int SchoolRoleID {get;set;} 
    [ForeignKey("SchoolRoleID")] 
    public virtual SchoolRole SchoolRole {get;set;} 

} 
0

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

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