Je suis la construction d'une boutique en ligne à l'aide de code MVC premierBoutique en ligne - Créer une commande avec plusieurs produits MVC .net
donc j'ai créé cette classe de modèle pour l'instant (ne prenez pas les types des attributs trop sérieux pour l'instant):
Produits (Produto):
public Produto()
{
ListaProdutoEncomenda = new HashSet<Produto_Encomenda>();
}
public int ProdutoID { get; set; }
[Required]
[StringLength(50)]
public string Nome { get; set; }
[Required]
public double Preco { get; set; }
[Required]
public double Peso { get; set; }
[Required]
[StringLength(255)]
public string Descricao { get; set; }
[Required]
public double IVA { get; set; }
public string Imagem { get; set; }
public DateTime UltimaAtualizacao { get; set; }
public int Stock { get; set; }
public int CategoriaID {get;set;}
public virtual ICollection<Produto_Encomenda> ListaProdutoEncomenda { get; set; }
}
Encomenda (ordre):
public class Encomenda
{
public Encomenda()
{
ListaProdutoEncomenda = new HashSet<Produto_Encomenda>();
}
[Key]
public int IDEncomenda { get; set; }
[Required]
public DateTime DataSubmissao { get; set; }
[Required]
public DateTime DataEnvio { get; set; }
[Required]
public int EstadoEnvioID { get; set; }
[StringLength(50)]
public string NomeDestino { get; set; }
[Required]
public int TipoExpedicaoID { get; set; }
[Required]
public int RegiaoDestinoID { get; set; }
[StringLength(50)]
public string MoradaDestino { get; set; }
[StringLength(50)]
public string CodPostalDestino { get; set; }
[Required]
[StringLength(50)]
public string MoradaFaturacao { get; set; }
[Required]
[StringLength(50)]
public string CodPostalFaturacao { get; set; }
public virtual ICollection<Produto_Encomenda> ListaProdutoEncomenda { get; set; }
}
Et la table de connexion entre les Produtos (Produits) et Encomenda (commande)
public class Produto_Encomenda
{
[Key]
public int IDProduto_Encomenda { get; set; }
[Required]
public string NomeProduto { get; set; }
[Required]
public int Quantidade { get; set; }
[Required]
public float preco { get; set; }
[Required]
public float IVA { get; set; }
public virtual Encomenda Encomenda { get; set; }
public virtual Produto Produto { get; set; }
[ForeignKey("Encomenda")]
public int IDEncomendaFK { get; set; }
[ForeignKey("Produto")]
public int IDProdutoFK { get; set; }
}
Ma question est .. Admettons qu'un costumer achète 2 ou 3 produits ou plus. Comment puis-je stocker tous ces produits sur une seule ligne d'une commande? Bravo et merci beaucoup pour le temps passé à lire.
Merci pour la réponse. Je comprends ce que vous dites et vous donne un sens à 100%, bien comment puis-je accomplir cela ou à quoi dois-je le relier? C'est probablement très simple, mais ça ne sonne pas, et je ne suis pas vraiment sûr de savoir comment l'implémenter. –
Cela dépend vraiment de ce que vous voulez. Simplement, je parle juste d'une autre entité telle que 'OrderItem'. À l'intérieur, cela ressemblerait probablement beaucoup à «Produto_Encomenda», sauf qu'au lieu de se rapporter directement à un produit, il suffit de mettre ici les informations pertinentes du produit (nom, image, etc.). La relation serait alors un-à-plusieurs, au lieu de plusieurs-à-plusieurs. Chaque 'OrderItem' serait directement lié à un ordre. Vous * pourriez * avoir encore une clé étrangère dans le produit, si vous voulez, mais vous aurez besoin que cette clé étrangère soit nullable, et vous devriez la définir comme ON DELETE SET NULL. –
Ok Chris Je vais essayer, et je vous ferai savoir comment les choses se sont passées. Merci .. –