2016-04-05 6 views
0

Bir süredir .NET EF'de bir şeyler yapmamaya çalışıyorum..NET EF MVC yükleniyor yükleniyor

Benim modelim şöyle görünür:

public class Route 
    { 
     [Key] 
    public int RouteId { get; set; } 
    [Display(Name = "Rope")] 
    public int ropeId { get; set; } 
    public virtual Rope rope { get; set; } 
    [Display(Name = "Routesetter")] 
    public int routeSetterId { get; set; } 
    public virtual RouteSetter routeSetter { get; set; } 
    [Display(Name = "Secundary routesetter")] 
    public int? secundaryRouteSetterId { get; set; } 
    public virtual RouteSetter secundaryRouteSetter { get; set; } 
    [Display(Name = "Grade")] 
    public int gradeId { get; set; } 
    public virtual ClimbingGrade grade { get; set; } 
    [Display (Name = "Routename")] 
    public string name { get; set; } 
    [Display(Name = "Color")] 
    public int colorId { get; set; } 
    public virtual GripColor color { get; set; } 
    [DataType(DataType.Date)] 
    [DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)] 
    [Display (Name ="Date set")] 
    public DateTime dateSet { get; set; } 
    [DataType(DataType.Date)] 
    [DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)] 
    [Display (Name ="Date removed")] 
    public DateTime? dateRemoved { get; set; } 
    [Display (Name ="Marked for removal")] 
    public bool markedForRemoval { get; set; } 

} 

kontrolör:

public ActionResult Index() 
    { 
     var routes = db.Routes.Include(r => r.color).Include(r => r.grade).Include(r => r.rope).Include(r => r.routeSetter).Include(r => r.secundaryRouteSetter); 
     ViewBag.Page = "Routes"; 
     return View(routes.ToList()); 
    } 

Şimdi renk özelliği her zaman sıfırdır. Diğer tüm özellikler yüklenirken.

Bunu anlayamıyorum. Herhangi bir yardım bekliyoruz

DÜZENLEME GripColor clas olacaktır: Ben gripColors veritabanında Tamam varsayalım

public class GripColor 
{ 
    [Key] 
    public int GripColorId { get; set; } 
    [Display(Name = "Primary color")] 
    public string primaryColor { get; set; } 
    [Display(Name = "Secundary color")] 
    public string secundaryColor { get; set; } 

    public string displayName { get { return primaryColor + ' ' + secundaryColor; } } 
    public virtual List<Route> Routes { get; set; } 
} 

;

ViewBag.ColorID = new SelectList(db.Colors, "GripColorId", "displayName"); 

yukarıda, o zaman nasıl bekliyoruz bir açılır menü (wich işleri) doldurmak için kullanılır Ve ColorID veritabanında iki tablo ilgili hiçbir yabancı anahtar yoktur

+0

Verilerin bu tablolarda mevcut olduğundan emin misiniz? Sorguda bir sorun varsa, yalnızca istisna atar. Ancak hiçbir sonuç döndürmezse, o zaman verilerle veya INNER JOIN'ler ile bu veriye bir şey –

+0

yapılır. SQL Server kullanıyorsanız, yapabileceğiniz başka bir şey, SQL komut dosyasını çalıştırarak hangi komutların gerçekten veritabanına gittiğini görmesidir. https://www.youtube.com/watch?v=mJ8Dyv4Uk6E https://msdn.microsoft.com/en-us/library/ff650699.aspx İade beyanında bir hata ayıklama noktası işaretleyin ve listeye bakın. –

+0

Ayrıca, var colors = db.GripColors.ToList() öğelerini kontrol edin; döndürür ... –

cevap

1

doğru saklanır Bu iki tablo arasındaki ilişkiyi kurup yabancı anahtarı tanımlamanız gerekir. Bu amaç için veri ek açıklamaları kullanabilir veya akıcı api kullanmanızı şiddetle tavsiye ederim. Daha fazla bilgi için bu belgeye göz atın.

http://docs.efproject.net/en/latest/modeling/index.html