2010-12-09 13 views
0

Est-ce que quelqu'un connaît des exemples mvc qui implémentent une situation d'édition de un à plusieurs dans une ou plusieurs vues? Par exemple, je cherche quelque chose qui montrerait comment mieux implémenter une relation simple de Order à OrderItem où OrderItem contient une référence de produit et une quantité. modèles exemples seraient les suivantes:Exemple ASP.NET MVC pour l'édition de collections d'objets étrangères

public class Order  
{ 
    public int OrderID { get;set;} 
    public string Name { get;set;} 

    public ICollection<OrderItem> OrderItems { get;set;} 
} 

public class Product 
{ 
    public int ProductID { get;set;} 
    public string Name { get;set;} 
} 

public class OrderItem 
{ 
    public int OrderItemID { get;set;} 
    public Product Product { get;set;} 
    public int Quantity { get;set;} 
    public Order Order { get;set;} 
} 

Je l'ai regardé beaucoup des échantillons là-bas et ils sont pour les opérations CRUD simples sans propriétés de navigation, etc. De plus, si possible, je serais ravi de comprendre comment modifier un ordre existant, en ajoutant, en supprimant, en changeant OrderItem sans persister dans la base de données jusqu'à ce que l'action Enregistrer sur l'ordre soit exécutée.

+0

Qu'est-ce que vous utilisez pour une couche db? Ado.net, Entity Framework, Linq à Sql, NHibernate, LlblGen, MongoDb, LightSpeed, Subsonique, roulé à la main? – jfar

+0

J'utilise Entity Framework. Je n'ai pas vraiment de problème avec la persistance, je suis juste à la recherche d'un exemple général sur la façon de structurer les contrôleurs, les actions, les vues, etc. J'ai beaucoup de scénarios simples fonctionnant bien comme les opérations CRUD sur simple recherche articles c'est-à-dire Produit mais ce sont les opérations d'édition one-to-many avec lesquelles je me bats. Par exemple, disons que je suis en train d'éditer un Ordre en utilisant l'action Editer du OrderController et la vue applicable nommée EditOrder. Comment puis-je configurer le contrôleur pour ajouter un OrderItem à la collection OrderItems et modifier cela. –

Répondre

0

Je ne comprends pas votre question. Quel est le problème que vous essayez de résoudre?

Si vous recherchez des idées générales pour travailler avec MCV + EF, recherchez le modèle de référentiel. Si je comprends l'édition sans persister dans la base de données jusqu'à sauvegarder la partie d'action, chaque fois que vous exécutez une action dans votre contrôleur, vous allez probablement ouvrir un nouveau contexte, faites vos changements et enregistrez les changements. Je ne vois pas de scénario dans lequel vous ne sauvegarderiez pas après avoir modifié quelque chose dans votre contexte, encore un peu plus de détails vous aideraient.

+0

Ce serait probablement mieux comme commentaire. – jfar

0
+0

Merci, je vais jeter un coup d'oeil. –

+0

Ok, j'ai jeté un coup d'oeil à ça mais ce n'était vraiment pas ce que je recherchais. J'ai continué à creuser et finalement compris les problèmes que j'avais. J'ai fini par devoir ajouter une propriété ProductID à la classe OrderItem afin que je puisse définir cela au lieu d'essayer de réaffecter un produit complet. –