استفاده از فایل csv برای مقدار دهی اولیهی جداول با استفاده از EF
نویسنده: سالار ربال
تاریخ: ۱۳۹۷/۰۳/۱۴ ۱۷:۷
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
protected override void Seed(SeedingDataFromCSV.Domain.LocationContext context)
{
Assembly assembly = Assembly.GetExecutingAssembly();
string resourceName = "SeedingDataFromCSV.Domain.SeedData.countries.csv";
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
{
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
CsvReader csvReader = new CsvReader(reader);
csvReader.Configuration.WillThrowOnMissingField = false;
var countries = csvReader.GetRecords<Country>().ToArray();
context.Countries.AddOrUpdate(c => c.Code, countries);
}
}
resourceName = "SeedingDataFromCSV.Domain.SeedData.provincestates.csv";
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
{
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
CsvReader csvReader = new CsvReader(reader);
csvReader.Configuration.WillThrowOnMissingField = false;
while (csvReader.Read())
{
var provinceState = csvReader.GetRecord<ProvinceState>();
var countryCode = csvReader.GetField<string>("CountryCode");
provinceState.Country = context.Countries.Local.Single(c => c.Code == countryCode);
context.ProvinceStates.AddOrUpdate(p => p.Code, provinceState);
}
}
}
} یک کتابخانه مرتبط: EntityFramework.Seeder