Ho installato Entity Framework e funziona bene la maggior parte del tempo che mi serve. Ho una struttura come questaEntity Framework - Stop Lazy Caricamento di entità correlate su richiesta?
public partial class Topic : Entity
{
public Guid Id { get; set; }
public string Name { get; set; }
public DateTime CreateDate { get; set; }
public virtual Post LastPost { get; set; }
public virtual Category Category { get; set; }
public virtual IList<Post> Posts { get; set; }
public virtual IList<TopicTag> Tags { get; set; }
public virtual MembershipUser User { get; set; }
public virtual IList<TopicNotification> TopicNotifications { get; set; }
public virtual IList<Favourite> Favourites { get; set; }
public virtual Poll Poll { get; set; }
}
Come si può vedere, ho un numero di entità correlate che sono elenchi. Questi sono mappati come standard e sono pigri caricata in modo che posso chiamare Topic.Posts o Topic.TopicNotifications ecc ... (Mapping sotto)
HasOptional(t => t.LastPost).WithOptionalDependent().Map(m => m.MapKey("Post_Id"));
HasOptional(t => t.Poll).WithOptionalDependent().Map(m => m.MapKey("Poll_Id"));
HasRequired(t => t.Category).WithMany(t => t.Topics).Map(m => m.MapKey("Category_Id"));
HasRequired(t => t.User).WithMany(t => t.Topics).Map(m => m.MapKey("MembershipUser_Id"));
HasMany(x => x.Posts).WithRequired(x => x.Topic).Map(x => x.MapKey("Topic_Id")).WillCascadeOnDelete();
HasMany(x => x.TopicNotifications).WithRequired(x => x.Topic).Map(x => x.MapKey("Topic_Id")).WillCascadeOnDelete();
HasMany(t => t.Tags)
.WithMany(t => t.Topics)
.Map(m =>
{
m.ToTable("Topic_Tag");
m.MapLeftKey("TopicTag_Id");
m.MapRightKey("Topic_Id");
});
Questo è tutto un pozzo. Ma in un paio di occasioni ho la necessità di popolare manualmente Topic.Posts e Topic.Favorites.
Ma se provo e impostare Topic.Posts = SomeCollection
innesca il carico pigro e carica tutti i post prima, e poi mi permette di impostare la mia collezione in modo da ottenere due set di SQL eseguito (il primo non voglio)
C'è comunque, per spegnere manualmente il carico pigro su richiesta per quando voglio impostare manualmente la raccolta?
speranza che abbia un senso ...:/
Sto rilevando un problema XY qui http://meta.stackexchange.com/a/66378/134199 - Penso che il tuo vero problema sia questa "necessità di compilare manualmente Topic.Posts e Topic.Favorites". Probabilmente stai provando a fare qualcosa che è molto meglio realizzato in un modo diverso, poiché ciò che stai facendo non ha alcun senso. Che cosa stai cercando di fare esattamente ... e perché? –
Seguirò ciò che @ErikFunkenbusch sta dicendo. Perché è necessario ricreare manualmente le raccolte Posts e Favorites? –
Se rispondi a quello che stai cercando di fare, allora potremmo davvero essere in grado di aiutarti a risolvere il tuo vero problema .. non il problema che pensi di avere perché pensi di dover fare una cosa particolare per risolverti problema. –