При переопределение метода ParseXML в db добавляется только последние значение. Цикл foreach не работает
Переопределение метода
public class SaveAlc : Parse
{
public override void ParserXML(XNamespace x, XDocument z, string y, string a)
{
using (ApplicationContext db = new ApplicationContext())
{
if (xdoc == null)
{
return;
}
else
{
base.ParserXML(x, z, y, a);
AlcDB alcDB = new AlcDB
{
Quantity = (string)quantity,
InformF1RegId = (string)informF1RegId,
InformF2RegId = (string)informF2RegId,
FullName = (string)fullName,
AlcCode = (string)alcCode,
Capacity = (string)capacity,
AlcVolume = (string)alcVolume,
ProductVCode = (string)productVCode,
ShortName = (string)shortName,
};
db.AlcDB.Add(alcDB);
db.SaveChanges();
}
}
}
}
Сам метод ParseXML
public virtual void ParserXML(XNamespace x, XDocument z, string y, string a)
{
foreach (XElement element in z.Elements(nNs + "Documents").Elements(nNs + "Document").Elements(nNs + y)
.Elements(x + "Products").Elements(x + a))
{
quantity = element.Element(x + "Quantity");
informF1RegId = element.Element(x + "InformF1RegId");
informF2RegId = element.Element(x + "InformF2RegId");
fullName = element.Element(x + "Product").Element(nPref + "FullName");
alcCode = element.Element(x + "Product").Element(nPref + "AlcCode");
capacity = element.Element(x + "Product").Element(nPref + "Capacity");
alcVolume = element.Element(x + "Product").Element(nPref + "AlcVolume");
productVCode = element.Element(x + "Product").Element(nPref + "ProductVCode");
shortName = element
.Element(x + "Product").Element(nPref + "Producer").Element(nOref + "UL")?.Element(nOref + "ShortName");
}
Вызов метода
SaveAlc parse = new SaveAlc();
parse.ParserXML(nRst, xdoc, "ReplyRests_v2", "StockPosition");