Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Nessuna chiave definita per EntityType

    ciao!

    mi sto un pò sbattendo mvc 4.

    vorrei eseguire una semplice connessione al db.
    ho impostato la stringa newl web.config.
    poi ho creato questo:
    codice:
    namespace MF.Models
    {
        public class lavori
        {
            public int l_id { get; set; }
        }
    
        public class LavoriModels : DbContext
        {
            public LavoriModels()
                : base("MYCONN") { }
    
            public DbSet<lavori> lavori { get; set; }
        }
    }
    poi nel controller:
    codice:
            public ActionResult Index()
            {
                var lavori = lm.lavori.ToList();
                return View(lavori);
            }
    ottento però questo errore:
    codice:
    \tSystem.Data.Entity.Edm.EdmEntityType: : 
    Nessuna chiave definita per EntityType 'lavori'. Definire la chiave per EntityType.
    \tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: 
    L'elemento EntitySet 'lavori' è basato sul tipo 'lavori' per il quale non sono definite chiavi.
    da cosa deriva??

  2. #2
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    invece di l_id prova a chiamarla ID la proprietà.

  3. #3
    riprendendo uno degli esempi ho fatto queste modifiche:
    codice:
        public class LavoriModels : DbContext
        {
            public LavoriModels()
                : base("MYCONN") { }
    
            public DbSet<Lavori> lavori { get; set; }
        }
    
        [Table("lavori")]
        public class Lavori
        {
            [Key]
            [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
            public int l_id { get; set; }
        }
    adesso non ottengo più errori ma sulla pagina non esce nulla.
    suppongo devo elaborare i dati sulla view.

  4. #4
    come volevasi dimostrare....
    ho seguito diverse guide ma continuo ad ottenere diversi errori.
    il model è quello che avete visto sopra.

    nel controller:
    codice:
            private LavoriModels lm = new LavoriModels();
    
            public ActionResult Index()
            {
                return View(lm.lavori.ToList());
            }
    nella view:
    codice:
    @model IEnumerable<Models.LavoriModels>
    <ul>
        @foreach (var item in Model)
        {[*]@Html.DisplayFor(model => item.lavori)
        }[/list]
    l'errore è questo:
    codice:
    L'elemento del modello passato nel dizionario è di tipo 'System.Collections.Generic.List`1[Models.Lavori]', tuttavia il dizionario richiede un elemento di
     modello di tipo 'System.Collections.Generic.IEnumerable`1[Models.LavoriModels]'.
    non riesco proprio a capire.

  5. #5
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    codice:
    @model IEnumerable<Models.Lavori>
    <ul>
        @foreach (var item in Model)
        {[*]@Html.DisplayFor(model => item.l_id)
        }[/list]

  6. #6
    si cosi funziona!!
    grazie!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.