0
我開始玩弄MVC5,並有如下的模型結構的數據:MVC模型 - 如何得到我所需要的1個LINQ
我需要的是所有的數據,填補了力學模型,所以這是機械師,地址,國家名稱,運營時間框架,一天不是dayid。
Linq有可能嗎?如果是這樣,我已經嘗試了很多方法,並且永遠無法得到國家名或日期。
我在類聲明下包含了一些失敗的linq嘗試。
public class Mechanic
{
public Int32 ID { get; set; }
public String CompanyName { get; set; }
public DateTime CreationTimestamp { get; set; }
public virtual ICollection<Address> Addresses { get; set; }
public virtual ICollection<MechanicService> MechanicServices { get; set; }
public virtual ICollection<MechanicOperationalTimeFrame> MechanicOperationalTimeFrames { get; set; }
}
public class Address
{
public Int32 ID { get; set; }
public int MechanicId { get; set; }
public String AddressLine1 { get; set; }
public String AddressLine2 { get; set; }
public String AddressLine3 { get; set; }
public String District { get; set; }
public String Region { get; set; }
public String PostalCode { get; set; }
public int CountryId { get; set; }
public DateTime CreationTimestamp { get; set; }
public virtual Mechanic Mechanic { get; set; }
public virtual Country Country { get; set; }
}
public class Country
{
public int ID { get; set; }
public String CountryName { get; set; }
public virtual ICollection<Address> Addresses { get; set; }
}
public class MechanicOperationalTimeFrame
{
public Int32 ID { get; set; }
public Int32 DayId { get; set; }
public String Opening { get; set; }
public String Closing { get; set; }
public Int32 MechanicId { get; set; }
public virtual Mechanic Mechanic { get; set; }
public virtual Day Day { get; set; }
}
public class Day
{
public Int32 ID { get; set; }
public String Name { get; set; }
public virtual ICollection<MechanicOperationalTimeFrame> MechanicOperationalTimeFrames { get; set; }
}
public class MechanicService
{
public Int32 ID { get; set; }
[StringLength(30), DisplayName("Service provided")]
public String Service { get; set; }
public Int32 MechanicId { get; set; }
public virtual Mechanic Mechanic { get; set; }
}
這裏是我的一些失敗的嘗試:
//var mechanic = from m in db.Mechanics
// join a in db.Addresses on m.ID equals a.MechanicId
// join ms in db.MechanicServices on m.ID equals ms.MechanicId into services
// from y in services.DefaultIfEmpty()
// join mo in db.MechanicOperationalTimeFrames on m.ID equals mo.MechanicId into hours
// from h in hours.DefaultIfEmpty()
// select new { m.CompanyName, y.Service, h.DayId };
//Mechanic mechanic = (Mechanic)db.Mechanics
.Where(a => a.ID == id)
.Include(a => a.Addresses)
.Include(a => a.MechanicServices)
.Include(a => a.MechanicOperationalTimeFrames).SingleOrDefault();
//Mechanic mechanic = db.Mechanics.Where(m => m.ID == id)
// .Include("Addresses")
// .Include("MechanicServices")
// .Include("MechanicOperationalTimeFrames").Single();
這裏的分貝的快照。
任何幫助或指針非常感謝。
如果您檢索Mechanics並將其傳遞給視圖,那麼您應該可以訪問所有虛擬屬性? –