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>());

    }

如您所见,Search 类是所有其他类的父类。在它下面是与 Hourslice 表相关的 Times 表。Media 表也在 Search 类下面,它下面有 6 个表,有几个表有自己的子表,每个父表都有自己的 ID。

主要目标是创建一个搜索数据库,该数据库将具有所有可能的数据结构来保存搜索并与原始数据库交互以获取每个搜索属性/参数的实际数据。

我在创建数据库时遇到问题,出现以下错误:“错误 3004:从第 30 行开始映射片段时出现问题:没有为 Set Searches 中的属性 Search.m 指定映射。\r\n带有键 (PK) 的实体将不会舍入-trip when:\r\n Entity 类型为 [PlayWithMVC4.Models.Search]\r\n"}"

我确定结构/逻辑有问题,但我不确定从哪里开始挖掘,非常感谢帮助。

4

1 回答 1

1

首先,您要确保要映射的所有属性都是公共的,并且它们实际上是属性而不是字段。

例如,您的类型上的成员Media都是私有的,因为您没有指定公共访问修饰符。集合成员也是字段,而不是属性,因为它们没有 getter 和 setter。

此外,如果您希望支持用于更改跟踪或延迟加载的代理类型,请在此处查看完整的要求列表。

于 2013-04-14T10:15:27.757 回答