从实体框架模型生成数据库
本文关键字:数据库 模型 实体 框架 | 更新日期: 2023-09-27 18:09:09
我计划制作一个实体框架类,它将包含几个模型,这些模型将创建数据库表结构。
做了一些工作,得出了这个模型结构:
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中。'r'n实体的类型为[PlayWithMVC4.Models.Search]'r'n"}"
我确定结构/逻辑有问题,但我不确定从哪里开始挖掘,帮助将非常感激。
首先,您要确保您映射的所有属性都是公共的,并且它们实际上是属性而不是字段。
例如,Media
类型上的成员都是私有的,因为您没有指定公共访问修饰符。集合成员也是字段,而不是属性,因为它们没有getter和setter。
同样,如果您希望支持用于更改跟踪或延迟加载的代理类型,那么请查看这里的完整需求列表。