Аз имам проблеми, които се опитват да получат базата от данни, която да семе с първоначалната рамка / код. Аз съм начинаещ в .NET и съм опитвал много от решенията, но никой от тях не работи за мен.
Какво правя погрешно? Аз публикувам най-подходящия код ... Всяка помощ ще бъде много оценявам.
SampleData.cs
namespace seed2.Models
{
public class SampleData : DropCreateDatabaseAlways<AirplaneDB>
{
protected override void Seed(AirplaneDB context)
{
var airplane = new List<Airplane>()
{
new Airplane { AirplaneId = 1, Make = "Great Planes"},
new Airplane { AirplaneId = 2, Make = "Eflite"}
};
base.Seed(context);
}
}
}
web.config
<add name="AirplaneDB"
connectionString="data source=|DataDirectory|Airplanes.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
СамолетDB.cs (контекст)
public class AirplaneDB : DbContext
{
public DbSet<Airplane> Airplanes { get; set; }
}
Airplane.cs
public class Airplane
{
public int AirplaneId { get; set; }
public string Make { get; set; }
}
Отговори:
1 за отговор № 1Първо, добавете го към метода Application_Start () на Global.asax.cs:
System.Data.Entity.Database.SetInitializer(new seed2.Models.SampleData());
Уверете се, че действително обновявате изгледа в браузъра. Повторното изграждане на решението не заема базата данни.
И накрая, трябва да добавите airplane.ForEach(x => context.Airplanes.Add(x));
и премахнете base.Seed(context)
в метода на семената ви.
0 за отговор № 2
Не мога да видя запазването на промените като context.SaveChanges () Моля, опитайте да добавите този ред след base.Seed (контекст)