Итак, у меня работает SQLServerExpress 2008 R2 и Visual Studio 2010. Я считаю, что у меня есть экземпляр SQL Server (рис.1). Мне сообщили, что если я не укажу строку подключения в своей программе, EF создаст базу данных на локальном экземпляре SQL Server. Это не так. , .Я получаю ошибкуГде EF создает мою базу данных? Если это.
Мой код выглядит следующим образом:
В global.asax.cx
:
protected void Application_Start()
{
Database.SetInitializer(new DatabaseInit());
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
Horse.cs
:
public class Horse
{
public int HorseID { get; set; }
public string Name { get; set; }
public virtual Participant Participant { get; set; }
}
Participant.cs
:
public class Participant
{
public int ParticipantID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
[Required]
public Horse Horse { get; set; }
}
MelbourneCupDbContext
:
public class MelbourneCupDbContext : DbContext
{
public DbSet<Horse> Horses;
public DbSet<Participant> Participants;
}
DatabaseInit
:
public class DatabaseInit : DropCreateDatabaseAlways<MelbourneCupDbContext>
{
protected override void Seed(MelbourneCupDbContext context)
{
var Horses = new List<Horse>
{
new Horse{Name="Americain"},
new Horse{Name="Jukebox Jury"},
new Horse{Name="Dunaden"}
....
};
foreach (Horse h in Horses)
context.Horses.Add(h);
context.SaveChanges();
}
}
Наконец, когда я пытаюсь использовать базу данных (SignUpController.cs
):
private MelbourneCupDbContext dbContext = new MelbourneCupDbContext();
[HttpGet]
public ActionResult Index()
{
IEnumerable<Horse> allHorsesList = dbContext.Horses.ToList();
return View(allHorsesList);
}
Я получаю сообщение об ошибке при попытке вызовите ToList, что источник не может быть нулевым.
HALP
рис 1
Это не объясняет, почему я получаю нулевой источник? Его нужно где-то создавать? – JohnW