84 messaggi dal 11 luglio 2013
Salve, ho la pagine Create per aggiungere un cliente.. Inserisco i dati e ho questo errore:
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_ClientePC". The conflict occurred in database "GestioneAssistenze", table "dbo.Clienti", column 'ClienteID'.
The statement has been terminated.


Questo errore si trova nel metodo HttpPost Create del controller sulla riga:
db.SaveChanges();
Come posso risolverlo?
Modificato da Grian Fonina il 09 ottobre 2013 12.27 -
Modificato da Grian Fonina il 09 ottobre 2013 12.27 -

Siamo buoni a nulla, ma capaci di tutto.
103 messaggi dal 04 ottobre 2010
Dall'errore sembra che la tabella clienti abbia la colonna Cliente_ID che deve referenziare per forza i record di un'altra tabella (presumo sia la tabella ClientiPC). Quindi un ID cliente che non sia censito nella tabella ClientiPC non può essere inserito. Credo che dovresti rifare il vincolo relazionale, a livello logico mi sembrerebbe più sensato che la referenza debba essere della tabella ClientiPC verso la tabella Clienti, e non viceversa
84 messaggi dal 11 luglio 2013
La relazione è PC(n) - (1) Clienti perchè un cliente può avere 1 o n pc ma un pc è di un cliente.. le classi nel Model sono le seguenti:

namespace DataBaseGestione
{
    using System;
    using System.Collections.Generic;
    
    public partial class Clienti
    {
        public Clienti()
        {
            this.PC = new HashSet<PC>();
        }
    
        public int ClienteID { get; set; }
        public string Nome { get; set; }
        public string Cognome { get; set; }
        public string Telefono1 { get; set; }
        public string Telefono2 { get; set; }
        public string Particolari { get; set; }
    
        public virtual ICollection<PC> PC { get; set; }
    }
}



namespace DataBaseGestione
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    
    public partial class PC
    {
        public PC()
        {
            this.PCProblemi = new HashSet<PCProblemi>();
            this.PCTecnici = new HashSet<PCTecnici>();
        }
    
        public int PCID { get; set; }
        public string Pssw { get; set; }
        public string Borsa { get; set; }
        public string ColoreBorsa { get; set; }
        public string TipoBorsa { get; set; }
        public string Alimentatore { get; set; }
        public bool Stato { get; set; }
        public int ClienteID { get; set; }
        public int TipoID { get; set; }
        public int TecnicoID { get; set; }
        [DisplayFormat(DataFormatString = "{0:dd/MM/yy}")]
        public System.DateTime Data { get; set; }
        public string Richiamo { get; set; }
        public string QuandoPassa { get; set; }
        public string Richiesta { get; set; }
        public string ComunicazioneInterna { get; set; }
        public string ComunicazioneCliente { get; set; }
    
        public virtual Clienti Clienti { get; set; }
        public virtual ICollection<PCProblemi> PCProblemi { get; set; }
        public virtual ICollection<PCTecnici> PCTecnici { get; set; }
        public virtual Tecnici Tecnici { get; set; }
        public virtual Tipi Tipi { get; set; }
        public virtual ICollection<CustomTecnico> TecniciList { get; set; }
    }
    public class CustomTecnico
    {
        public int Tecnico { get; set; }
        public string TecnicoName { get; set; }
        public bool Selected { get; set; }
        public int PcTecnici { get; set; }
    }
}

Siamo buoni a nulla, ma capaci di tutto.
103 messaggi dal 04 ottobre 2010
L'errore è a livello Database, è lì che devi operare, hai qualche vincolo di referenza violato come cerchi di inserire un nuovo record

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.