私が通常従う別の方法は、XML ファイルからシード データをロードすることです。別のクラスは次のものを保持します。
private XmlNodeList readNodes(String xmlFilePath, String nodeName)
{
FileStream reader = new FileStream(xmlFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
System.Xml.XmlDocument source = new System.Xml.XmlDocument();
source.Load(reader);
return source.GetElementsByTagName(nodeName);
}
public List<Band> readBands(String xmlFilePath)
{
List<Band> results = new List<Band>();
foreach (XmlNode node in readNodes(xmlFilePath, "Band"))
{
results.Add(new Band { Members = node.Attributes["members"].Value, Name = node.Attributes["name"].Value });
}
results.Sort();
return results;
}
Seed
次に、以下をメソッドに追加します。
foreach (Band b in seeder.readBands(AppDomain.CurrentDomain.BaseDirectory + "App_Data\\Bands.xml"))
{
db.bands.Add(b);
}
XML は次のようになり、App_Data ディレクトリの下に配置されます。
<?xml version="1.0" encoding="UTF-8"?>
<bands>
<band name="Bear vs Shark" members="4" />
<band name="Circa Survive" members="4" />
<band name="Damiera" members="3" />
</bands>
その後、シードするすべてのテーブルに対してシード メソッドと XML ファイルを作成できます。そして、実行するたびに重複を追加する可能性が最も高いのでAdd
はなく、使用しているため、覚えておいてください。AddOrUpdate
Seed