Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq MVC3中的EF关系问题_Linq_Asp.net Mvc 3_Entity Framework 4_Model - Fatal编程技术网

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