2013-04-14 2 views
0

Я планирую сделать класс фреймворка сущности, который будет содержать несколько моделей. Эти модели создадут структуру таблицы базы данных.Создание базы данных из модели фрейма сущности

ли какая-то работа и придумал эту структуру модели:

public class Search 
{ 
    public int SearchId { get; set; } 
    public string SearchName { get; set; } 
    public Times t { get; set; } 
    public Media m { get; set; } 

} 


public class Times 
{ 
    public int TimesId { get; set; } 
    DateTime FromDate { get; set; } 
    DateTime ToDate { get; set; } 
    String Days { get; set; } 
    List<HourSlice> TSlist; 
} 

public class HourSlice 
{ 
    string Name { get; set; } 
    string Slice { get; set; } // will contain both -from hour- and -to hour- slice 

} 



public class Media 
{ 
    int MediaId { get; set; } 
    List<OperatorType> ot; 
    List<Operator> op; 
    List<Program> p; 
    List<Sector> s; 
    List<Categorie> cat; 
    List<MisradPirsum> mp; 
} 

public class OperatorType 
{ 
    int OperatorTypeID { get; set; } 
    string OperatorTypeName { get; set; } 
} 

public class Operator 
{ 
    int OperatorID { get; set; } 
    string OperatorName { get; set; } 

} 

public class Program 
{ 
    int ProgramID { get; set; } 
    string ProgramName { get; set; } 
} 

public class Sector 
{ 
    int SectorID { get; set; } 
    string SectorName { get; set; } 
} 

public class Categorie 
{ 
    public int CategorieId { get; set; } 
    List<Branch> br; 
    List<SubBranch> sbr; 
    List<SubSubBranch> ssbr; 

} 

public class Branch 
{ 
    int BranchID { get; set; } 
    string BranchName { get; set; } 
} 

public class SubBranch 
{ 
    int SubBranchID { get; set; } 
    string SubBranchName { get; set; } 

} 

public class SubSubBranch 
{ 
    int SubSubBranchID { get; set; } 
    string SubSubBranchName { get; set; } 
} 

public class MisradPirsum 
{ 
    public int MisradPirsumId { get; set; } 
    List<Company> c; 
} 

public class Company 
{ 
    int CompanyID { get; set; } 
    string CompanyName { get; set; } 
} 

Инициатор на Global.asax:

public class MvcApplication : System.Web.HttpApplication 
{ 
    protected void Application_Start() 
    { 
     Database.DefaultConnectionFactory = new SqlConnectionFactory(ConfigurationManager.ConnectionStrings["DBS"].ConnectionString); 
     Database.SetInitializer<DBS>(new Search_Initializer()); 

     AreaRegistration.RegisterAllAreas(); 

     WebApiConfig.Register(GlobalConfiguration.Configuration); 
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 

    // Database.SetInitializer<PlayWithMVC4.Models.DBS>(new DropCreateDatabaseAlways<PlayWithMVC4.Models.DBS>()); 
     Database.SetInitializer<PlayWithMVC4.Models.DBS>(new DropCreateDatabaseIfModelChanges<PlayWithMVC4.Models.DBS>()); 

    } 

Класс поиска является предком всех других классов вы можете увидеть , Под таблицей Times, которая будет относиться к таблице Hourslice. Стол мультимедиа также находится под классом поиска и имеет под ним 6 таблиц, у нескольких - свои дочерние таблицы, у каждого родителя есть собственный идентификатор.

Основная цель - создать базу данных поиска, которая будет иметь всю возможную структуру данных для сохранения результатов поиска и взаимодействия с исходной базой данных для получения фактических данных каждого свойства/параметров поиска.

У меня возникла проблема с созданием базы данных с этой ошибкой: «ошибка 3004: проблема с отображением фрагментов, начиная с строки 30: сопоставление не задано для свойств Search.m in Set Searches. \ R \ nAn Entity with Key (PK) не будет округлять, когда: \ r \ n Сущность - это тип [PlayWithMVC4.Models.Search] \ r \ n "}"

Я уверен, что что-то пошло не так со структурой/логикой, но я «Не знаю, с чего начать копать», «Помощь была бы очень признательна».

ответ

1

Во-первых, вы хотите, чтобы все свойства, которые вы сопоставляете, являются общедоступными и что они на самом деле являются свойствами, а не полями.

Элементы вашего типа Media, например, являются частными, так как вы не указали модификатор открытого доступа. Члены коллекции также являются полями, а не свойствами, поскольку у них нет геттеров и сеттеров.

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

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