我正在做一个学校项目,该项目将显示我学到的一些数据库属性。我有2个实体类,分别称为Person和CarInformation。我想一起显示Name,Location,WhishedDays(来自Person和Brand),PlateNumber(来自CarInformation)。
我尝试生成一个名为的新类,然后将名称,位置,WishedDays,Brand,PlateNumber分组。在相应的控制器中,我使用Select函数创建了一个列表,但失败了。
CarInformation实体类
public int Id { get; set; } //Primary key of carinfo table
public string Brand{ get; set; }
public string PlateNumber { get; set; }
public int Milage { get; set; }
public string InsuranceCompany{ get; set; }
public double ConsumptionPerMile { get; set; }
public int DailyPrice { get; set; }
public DateTime AvailableDates { get; set; }
[ForeignKey("Persons")]
public int OwnerId { get; set; } //foregein key (Person table to carinfo table)
public virtual Person Persons { get; set; } //Navigation property
public List<Sales> Sales { get; set; }
人员实体类
public int Id { get; set; } //primary key of person table
public string Name { get; set; }
public string Location { get; set; }
public int WishedDays { get; set; }
public virtual CarInformation Cars { get; set; } //Navigation property
public List<CarInformation> cars { get; set; } //bir insana ait birden fazla araba olabilir
public List<Sales> sales { get; set; }
Person-CarInformation类
public string Name { get; set; }
public string Location { get; set; }
public int WishedDays { get; set; }
public string Brand { get; set; }
public string PlateNumber { get; set; }
对应控制器的索引方法
public ActionResult Index()
{
var isimler = db.People.
Select(i => new Person_CarInformation() { Location=i.Location,Name=i.Name, Brand=i.Cars.Brand,PlateNumber=i.Cars.PlateNumber});
return View(isimler.ToList());
}
在这种情况下执行时,我得到此结果 Brand和PlateNumber为空。
有人建议吗?
谢谢。
答案 0 :(得分:1)
您在提取数据时未包括从属实体。您可以通过如下所示更改代码来获取它。
var isimler = db.People.Include("Cars").
Select(i => new Person_CarInformation() { Location=i.Location,Name=i.Name, Brand=i.Cars.Brand,PlateNumber=i.Cars.PlateNumber});