2017-06-06 2 views
1

suchen sehr neu zu diesem Thema. Einen Tourettes Musterverfolger für einen Freund errichten.Wie kann ich Werte aus einer anderen Tabelle in Entity Framework

Ich habe zwei verwandte Tabellen in EF. Wie kann ich einen Eintrag in der TicEntry-Tabelle erstellen, die eine Fremdschlüsselanforderung von der anderen Tabelle hat? Ich werde TicType auffüllen, da es ziemlich statisch bleiben wird.

Ein Benutzer muss in der Lage sein, einen TicEntry zu erstellen, idealerweise nur mit der Auswahl von Frequenz, Schweregrad und TicType. TicType sollte aus der TicType-Tabelle suchen. Das Datum wird hoffentlich automatisch sein, ebenso wie TicEntryID, was eine IDENTITÄT ist. Aber wie gehe ich mit der TicTypeID um, wenn ich meinem View ein Modell gebe?

Vielen Dank.

public enum Frequency { Low, Medium, High } 
public enum Severity { Low, Medium, High } 
public class TicEntry { 
    public int TicEntryID { get; set; } 
    public int TicTypeID { get; set; } 
    public DateTime DateTime { get; set; } 
    public Frequency? Frequency { get; set; } 
    public Severity? Severity { get; set; } 
    public virtual TicType TicType { get; set; } 
} 

    public enum Type { Motor, Vocal, ComMotor, ComVocal } 
public class TicType 
{ 
    public int TicTypeID { get; set; } 
    public Type? Type { get; set; }   
    public virtual ICollection<TicEntry> TicEntry { get; set; } 
}  

Antwort

1

der Benutzer Lassen Sie die tic-Typ aus der Type Enum wählen. Verwenden Sie dann den ausgewählten Enum-Wert, um den TicType-Eintrag aus dem DB nachzuschlagen.

Im View.cshtml:

var availableTicTypes = new List<SelectListItem>(
    new SelectListItem{ Value = Type.Motor, Text = "Motor", Selected = true }, 
    new SelectListItem{ Value = Type.Vocal, Text = "Vocal", Selected = false } 
    // ... 
); 
@Html.DropDownListFor(m => m.TickType, availableTicTypes) 

In Ihrem Controller:

var ticType = _dbContext.TicTypes.SingleOrDefault(t => t.Type == viewModel.TickType); 

var tickEntry = new TicEntry { 
    TicType = ticType 
    // set other properties ... 
}; 
_dbContext.TickEntries.Add(tickEntry); 
_dbContext.SaveChanges(); 
+0

Danke. Ich werde es versuchen. – WhatTheDeuce

Verwandte Themen