Planet
adlı bir dersim var. Bunlar çok sık değişmez ve veriyi bu veritabanında varlığını başlatmak için kullanılan veriler de kullanılamaz. Kitle ve kitlesel tohum verisi içeren göç sınıflarına sahip olmak istemiyorum. Bir sınıf için tohum verilerinin, bu tür bir sınıf için bir tane göç oluşturmasından daha başka bir yolu var mı? Örneğin. Birçok varlıkla bir geçişte, Planet
için tohum verilerinin PlanetSeedData
sınıfında yer aldığını belirten bir ifade eklemek istiyorum.Bir varlık sınıfı için tohum verilerini o sınıfın beyanıyla ilişkilendirebilir miyim?
0
A
cevap
0
Bunu yapmak için uygun bir EF yöntemi yoktur. Ancak, oldukça basit bir şekilde kendi yapabilirsiniz.
public static class PlanetSeedData
{
public static void Seed(Action<string> sql)
{
sql("INSERT INTO dbo.Planets(Name) VALUES('Mercury')");
sql("...");
}
}
Ardından göç bu çağrı: Eğer Sql(string)
işlevini çağırarak bir göç içindeki verileri tohumlarını etrafa yana aşağıdaki gibi
, başka sınıfa dikkat hareketli basit bir şekilde o sınıfı tanımlamak olacaktır :
public override void Up()
{
// CreateTable(...)
PlanetSeedData(x => Sql(x));
}