Linq MVC3中的EF关系问题
我得到了以下代码:Linq MVC3中的EF关系问题,linq,asp.net-mvc-3,entity-framework-4,model,Linq,Asp.net Mvc 3,Entity Framework 4,Model,我得到了以下代码: public class Trip { public int TripId { get; set; } public int DriverId { get; set; } public string StartingPoint { get; set; } public string Destination { get; set; } public DateTime TimeDepart { get; set; } pu
public class Trip
{
public int TripId { get; set; }
public int DriverId { get; set; }
public string StartingPoint { get; set; }
public string Destination { get; set; }
public DateTime TimeDepart { get; set; }
public int SeatAvailable { get; set; }
public virtual Carpooler Carpooler { get; set; }
public virtual ICollection<Passenger> Passengers { get; set; }
}
public class Driver
{
public int DriverId { get; set; }
public int TripId { get; set; }
public virtual Trip Trip { get; set; }
}
public class Passenger
{
public int PassengerId { get; set; }
public int TripId { get; set; }
public virtual Trip Trip { get; set; }
}
公务舱旅行
{
public int TripId{get;set;}
public int DriverId{get;set;}
公共字符串起始点{get;set;}
公共字符串目标{get;set;}
公共日期时间时间间隔{get;set;}
public int seataavailable{get;set;}
公共虚拟拼车者拼车者{get;set;}
公共虚拟ICollection乘客{get;set;}
}
公务舱司机
{
public int DriverId{get;set;}
public int TripId{get;set;}
公共虚拟行程{get;set;}
}
公务舱乘客
{
公共int PassengerId{get;set;}
public int TripId{get;set;}
公共虚拟行程{get;set;}
}
模型生成器:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//one-to-one between Trip and Carpooler
modelBuilder.Entity<Trip>()
.HasRequired(x => x.Carpooler)
.WithRequiredDependent();
modelBuilder.Entity<Carpooler>()
.HasRequired(x => x.Trip)
.WithRequiredPrincipal();
base.OnModelCreating(modelBuilder);
//zero or one-to-many between Trip and Passenger
modelBuilder.Entity<Trip>()
.HasOptional(x => x.Passengers);
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
//旅行和拼车之间的一对一
modelBuilder.Entity()
.HasRequired(x=>x.Carpooller)
.WithRequiredDependent();
modelBuilder.Entity()
.has必需(x=>x.Trip)
.WithRequiredPrincipal();
基于模型创建(modelBuilder);
//行程和乘客之间为零或一对多
modelBuilder.Entity()
.has可选(x=>x.Passengers);
modelBuilder.Conventions.Remove();
}
初始值设定项:
Database.SetInitializer<LiveGreenContext>(new CarpoolTripInitializer());
Database.SetInitializer(新的CarpoolTripInitializer());
我得到以下错误:
多重性在关系“Trip\u Driver”中的角色“Trip\u Driver\u Target”中无效。因为依赖角色属性不是键属性,所以依赖角色的多重性上限必须为*
这个问题有什么解决办法吗?谢谢 配置
行程
和驾驶员
之间的关系。Trip
中有一个未配置的DriverId
属性。如果您打算将其用作导航属性,则还需要对其进行配置
您的OnModelCreating
方法中的某些配置不完整,已更正
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Driver>()
.HasRequired(x => x.Trip)
.WithMany()
.HasForeignKey(x => x.TripId);
//one-to-one between Trip and Carpooler
modelBuilder.Entity<Trip>()
.HasRequired(x => x.Carpooler)
.WithRequiredDependent();
modelBuilder.Entity<Carpooler>()
.HasRequired(x => x.Trip)
.WithRequiredPrincipal();
//zero or one-to-many between Trip and Passenger
modelBuilder.Entity<Trip>()
.HasMany(x => x.Passengers)
.WithRequired(x => x.Trip)
.HasForeignKey(x => x.TripId);
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity()
.has必需(x=>x.Trip)
.有很多
.HasForeignKey(x=>x.TripId);
//旅行和拼车之间的一对一
modelBuilder.Entity()
.HasRequired(x=>x.Carpooller)
.WithRequiredDependent();
modelBuilder.Entity()
.has必需(x=>x.Trip)
.WithRequiredPrincipal();
//行程和乘客之间为零或一对多
modelBuilder.Entity()
.有许多乘客(x=>x名乘客)
.WithRequired(x=>x.Trip)
.HasForeignKey(x=>x.TripId);
基于模型创建(modelBuilder);
modelBuilder.Conventions.Remove();
}