Salve,
ho un problema e vorrei un aiuto a risolverlo. Ho le seguenti tabelle nel database
CREATE TABLE [Estintori] (
estintoreID int IDENTITY(1,1) PRIMARY KEY,
numero int UNIQUE NOT NULL,
tipo nvarchar(5),
matricola int UNIQUE NOT NULL,
ubicazione nvarchar(150) NOT NULL,
car bit DEFAULT NULL,
kg int DEFAULT NULL,
scadenzaRevisione int DEFAULT NULL, /* indicare anno di scadenzaRevisione */
scadenzaCollaudo int DEFAULT NULL, /* indicare anno di scadenzaCollaudo */
note nvarchar(2000) DEFAULT NULL,
data datetime NOT NULL,
username nvarchar(50) NOT NULL
);
GO
CREATE TABLE [ControlliEstintori] (
controlloEstintoreID int IDENTITY(1,1) PRIMARY KEY,
esito nvarchar(3) NOT NULL,
note ntext DEFAULT NULL,
username nvarchar(200) NOT NULL,
data datetime NOT NULL,
turno nvarchar(50) NOT NULL,
estintoreID int NOT NULL
CONSTRAINT [FK_ControlliEstintori_Estintori] FOREIGN KEY (estintoreID) REFERENCES [Estintori](estintoreID)
ON UPDATE NO ACTION
ON DELETE NO ACTION
);
GO
Nel mio progetto MVC con entity framework ho la pagina create.cshtml (per quanto riguarda la tabella [ControlliEstintori]) in cui ho una dropdownlist da cui scelgo l'estintore e compilo i campi relativi. La mia necessità sarebbe quella di avere l'elenco di tutti gli estintori (prendendoli dalla tabella [Estintori]) e di compilare i campi relativi alla tabella [ControlliEstintori], in poche parole anzichè scegliere l'estintore uno per volta da una select vorrei avere una tabella con tutti gli estintori nella prima colonna e nelle successive colonne i campi esito e note. E' possibile realizzare una cosa del genere? Come posso fare?
Questo il codice del relativo controller generato da EF
Grazie in anticipo a tutti.
[Authorize(Roles = "Admin")]
public ActionResult Create()
{
ViewBag.estintoreID = new SelectList(db.Estintoris, "estintoreID", "matricola");
return View();
}
[Authorize(Roles = "Admin")]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "controlloEstintoreID,esito,note,username,data,turno,estintoreID")] ControlliEstintori controlliEstintori)
{
if (ModelState.IsValid)
{
db.ControlliEstintoris.Add(controlliEstintori);
db.SaveChanges();
Helper help = new Helper();
LogLetturesController logLettura = new LogLetturesController();
Estintori est = new Estintori();
est = db.Estintoris.Find(controlliEstintori.estintoreID);
logLettura.Insert(User.Identity.Name, "Controllo estintore " + est.matricola.ToString() +".", Session["turno"].ToString(), help.GetIPAddress());
return RedirectToAction("Index");
}
ViewBag.estintoreID = new SelectList(db.Estintoris, "estintoreID", "matricola", controlliEstintori.estintoreID);
return View(controlliEstintori);
}
E questo il model delle due entità
public partial class Estintori
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Estintori()
{
this.ControlliEstintoris = new HashSet<ControlliEstintori>();
}
public int estintoreID { get; set; }
public int numero { get; set; }
public string tipo { get; set; }
public int matricola { get; set; }
public string ubicazione { get; set; }
public Nullable<bool> car { get; set; }
public Nullable<int> kg { get; set; }
public Nullable<int> scadenzaRevisione { get; set; }
public Nullable<int> scadenzaCollaudo { get; set; }
public string note { get; set; }
public System.DateTime data { get; set; }
public string username { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<ControlliEstintori> ControlliEstintoris { get; set; }
}
public partial class ControlliEstintori
{
public int controlloEstintoreID { get; set; }
public string esito { get; set; }
public string note { get; set; }
public string username { get; set; }
public System.DateTime data { get; set; }
public string turno { get; set; }
public int estintoreID { get; set; }
public virtual Estintori Estintori { get; set; }
}
Grazie a tutti.