2015-10-02 2 views
1

Итак, я пытаюсь написать сайт asp.net практики для сети магазинов велосипедов. Если вы посмотрите на мой индексный указатель для моего объекта хранилища. Как и мой макет db и контроллер, вы можете увидеть, что я намерен отобразить количество просмотров и имена магазинов:Asp.net beginner issues

BikeStoreEntities.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Data.Entity; 
using BikeStore.Models; 

namespace BikeStore.Models 
{ 
    public class BikeStoreEntities : DbContext 
    { 
     public DbSet<Inventory> StoreInventory { get; set; } 
     public DbSet<Store> Stores { get; set; } 
    } 
} 

контроллер

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using BikeStore.Models; 


namespace BikeStore.Controllers 
{ 
    public class StoreController : Controller 
    { 
     BikeStoreEntities storeDB = new BikeStoreEntities(); 
     // GET: Store 
     public ActionResult Index() 
     { 
      var stores = storeDB.Stores.ToList(); 
      return View(stores); 
     } 
     public ActionResult Details(int id) 
     { 
      var bike = new Inventory {SerialNumber=id }; 
      return View(bike); 
     } 
     public ActionResult Browse(string name) 
     { 
      var store = new Store { Name = name }; 
      return View(store); 
     } 
    } 
} 

Модель

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Data.Entity; 
using BikeStore.Models; 
using BikeStore.Models; 

namespace BikeStore.Models 
{ 
    public class SampleData : DropCreateDatabaseIfModelChanges<BikeStoreEntities> 
    { 
     protected override void Seed(BikeStoreEntities context) 
     { 
      var stores = new List<Store> 
      { 
       new Store { Name = "Rocky Road" , City= " ", Address= " ", Phone= " ", Employees = new List<Employee>(), StoreInventory= new List<Inventory>()}, 
       new Store { Name = "Jazzy Drive" ,City= " ", Address= " ", Phone= " ", Employees = null, StoreInventory= null}, 
       new Store { Name = "Metal Foundry" ,City= " ", Address= " ", Phone= " ", Employees = null, StoreInventory= null} 
      }; 
     } 
    } 
} 

Посмотреть

@model IEnumerable<BikeStore.Models.Store> 

@{ 
    ViewBag.Title = "Store"; 
} 
<h3>Browse Stores</h3> 
<p> 
    Select from @Model.Count() Stores: 
</p> 
<ul> 
    @foreach (var store in Model) 
    { 
     <li>@store.Name</li> 
    } 
</ul> 

Однако он печатает "Выбрать из 0 Магазинов", а затем без каких-либо магазинов после него. Кто-нибудь знает, что здесь может быть? Я был бы рад предоставить любые другие файлы проектов, которые, по вашему мнению, актуальны.

+1

вы не показывая свой контроллер. –

+0

@ DanielA.White Там вы идете. –

+0

В вашей базе данных должна быть запись. – Lali

ответ

2

Вы не заселяете сущности, ваша локальная переменная выходит за пределы области действия и данные не добавляются.

namespace BikeStore.Models 
{ 
    public class SampleData : DropCreateDatabaseIfModelChanges<BikeStoreEntities> 
    { 
     protected override void Seed(BikeStoreEntities context) 
     { 
      var stores = new List<Store> 
      { 
       new Store { Name = "Rocky Road" , City= " ", Address= " ", Phone= " ", Employees = new List<Employee>(), StoreInventory= new List<Inventory>()}, 
       new Store { Name = "Jazzy Drive" ,City= " ", Address= " ", Phone= " ", Employees = null, StoreInventory= null}, 
       new Store { Name = "Metal Foundry" ,City= " ", Address= " ", Phone= " ", Employees = null, StoreInventory= null} 
      }; 
     } 
    } 
} 

Смотрите пример здесь о том, как семена: http://www.asp.net/web-api/overview/data/using-web-api-with-entity-framework/part-3

protected override void Seed(BookService.Models.BookServiceContext context) 
{ 
    context.Authors.AddOrUpdate(x => x.Id, 
    new Author() { Id = 1, Name = "Jane Austen" }, 
    new Author() { Id = 2, Name = "Charles Dickens" }, 
    new Author() { Id = 3, Name = "Miguel de Cervantes" } 
    ); 

    context.Books.AddOrUpdate(x => x.Id, 
    new Book() { Id = 1, Title = "Pride and Prejudice", Year = 1813, AuthorId = 1, 
     Price = 9.99M, Genre = "Comedy of manners" }, 
    new Book() { Id = 2, Title = "Northanger Abbey", Year = 1817, AuthorId = 1, 
     Price = 12.95M, Genre = "Gothic parody" }, 
    new Book() { Id = 3, Title = "David Copperfield", Year = 1850, AuthorId = 2, 
     Price = 15, Genre = "Bildungsroman" }, 
    new Book() { Id = 4, Title = "Don Quixote", Year = 1617, AuthorId = 3, 
     Price = 8.95M, Genre = "Picaresque" } 
    ); 
} 
+0

@Huber мой db подделка, человек. Его в моей папке моделей. На данный момент я хотел бы сохранить это. –

+0

@JamesFalter вам нужно заполнить ваши объекты чем-то, чтобы получить значение, отличное от нуля. Место, где вы пытаетесь заполнить свои объекты, ничего не делает, оно создает список магазинов, которые немедленно уничтожаются сборщиком мусора (JIT может игнорировать все это вместе). Чтобы получить в вашем представлении значение, отличное от нуля, вам нужно поместить некоторые фактические данные в экземпляр BikeStoreEntities, который использует ваш контроллер. Вы можете заполнить его в семени или использовать какой-либо другой метод, например, в конструкторе контроллера. –