EF Code First CTP5, mit Include-Methode mit Vielen Vielen Tisch

Ich habe so etwas wie die folgenden viele zu viele Beziehung-Tabellen.

public class Shop{
 public int Id { get; set; }
 public virtual ICollection<ShopFacility> ShopFacilities { get; set; }
}

public class ShopFacility
{
 public int Id { get; set; }        
 public int ShopId { get; set; }
 public int FacilityId { get; set; }
 public virtual Shop Shop { get; set; }
 public virtual Facility Facility { get; set; }
}

public class Facility
{
 public int Id { get; set; }        
 public virtual ICollection<ShopFacility> ShopFacilities { get; set; }
}

erhalten Geschäfte Informationen.

using (var context = new DataContext())
{
 return context.Shops.Include(s => s.ShopFacilities)
                     .Include("ShopFacilities.Facility")  //This line
                     .First(x => x.Id == id);
}

Was ich will zu tun ist, rufen Sie die Include-Methode mit einem Lambda-Ausdruck für eine viele zu viele Beziehung anstelle von string. Ich habe versucht, zu realisieren, wie der folgende code:

using (var context = new DataContext())
{
 return context.Shops.Include(s => s.ShopFacilities)
                     .Include(s => s.ShopFacilities.Facility)  //Cannot compile
                     .First(x => x.Id == id);
}

Aber wie Sie erraten, ich kann nicht kompilieren. Tatsächlich, das erste code-snippet funktioniert gut, also im Grunde ist es okay, aber ich bin irgendwie neugierig, ob es eine Arbeit um, oder nicht.

Jede Hilfe würde geschätzt,

Yoo

  • Wollte nur sagen, dass Sie nicht wirklich brauchen, das ShopFacility Klasse. Ihrem Shop Klasse kann eine ICollection<Facility> und Ihre Anlage-Klasse kann eine ICollection<Shop>. EF Code First wird verstehen, dass Sie einer viele-zu-viele-Beziehung.
  • Ich kenne den EF Code first ist ziemlich smart, aber eigentlich ShopFacility hat einige andere Eigenschaften wie Kommentar, Gebühr und so weiter, und so muss ich es haben. Ich entschuldige mich nicht, es zu erwähnen. Trotzdem vielen Dank!
InformationsquelleAutor Yoo Matsuo | 2011-03-09
Schreibe einen Kommentar