MVC3中EF关系的问题
我得到以下代码:
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; }
}
模型构建器:
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>();
}
初始化器:
Database.SetInitializer<LiveGreenContext>(new CarpoolTripInitializer());
我收到以下错误: 关系“Trip_Driver”中的角色“Trip_Driver_Target”中的多重性无效。由于从属角色属性不是关键属性,因此从属角色的重数上限必须为*。
有什么解决办法吗?谢谢!
I got the following codes:
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; }
}
A model builder:
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>();
}
A initializer:
Database.SetInitializer<LiveGreenContext>(new CarpoolTripInitializer());
And i get the following error:
Multiplicity is not valid in Role 'Trip_Driver_Target' in relationship 'Trip_Driver'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be *.
Any solution for the problem? Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
配置
Trip
和Driver
之间的关系。Trip
中有一个未配置的DriverId
属性。如果您打算将其用作导航属性,您也需要对其进行配置。OnModelCreating
方法中的某些配置不完整,现已更正。Configure the relationship between
Trip
andDriver
. There is aDriverId
property inTrip
which is not configured. If you intend to use this as a navigational property you need to configure that too.Some of the configuration were incomplete in your
OnModelCreating
method and are corrected.