Вооообщем, всем доброго времени суток дорогие шарписты.
Проблема, есть файл XML допустим с сайта cbr.ru. Я хотел бы перенести информацию из файла в SQl Server, что-бы потом через MVC показать результаты и (или) историю изменений. Варианты которые меня привели в никуда:
1) функция OPENROWSET в SQL, она создаёт гиперссылку для xml и соответственно просто показывает код XML-файла
2) Костыльный Code FIrst
 
using (AppDbContext context = new AppDbContext())
            {
                while (reader.Read())
                {
                    Test test = new Test();
                    reader.ReadStartElement();
                    if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "Valute"))
                    {
                        if (reader.HasAttributes)
                        {
                            test.ValuteID = reader.GetAttribute("ID");
                        }
                    }
                    reader.ReadToDescendant("NumCode");
                    if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "NumCode"))
                    {
                        test.NumCode = Convert.ToInt32(reader.ReadInnerXml());
                    }
                    if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "CharCode"))
                    {
                        test.CharCode = Convert.ToString(reader.ReadInnerXml());
                    }
                    if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "Nominal"))
                    {
                        test.Nominal = Convert.ToInt32(reader.ReadInnerXml());
                    }
                    if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "Name"))
                    {
                        test.Name = Convert.ToString(reader.ReadInnerXml());
                    }
                    if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "Value"))
                    {
                        test.Value = Convert.ToDecimal(reader.ReadInnerXml());
                    }
                    listTest.Tests.Add(test);
                }
              context.ListTests.Add(listTest);
              await context.SaveChangesAsync();
           }
Проблема здесь в том что создаются ненужные объекты в которых не содержатся необходимая информация, попросту пустышки.
Классы для передачи данных в БД: 
public class Test
    {
        public int Id { get; set; }
        public string ValuteID { get; set; }
        public int NumCode { get; set; }
        public string CharCode { get; set; }
        public int Nominal { get; set; }
        public string Name { get; set; }
        public decimal Value { get; set; }
        public ListTest ListTest { get; set; }
    }
    public class ListTest
    {
        public int Id { get; set; }
        
        public List<Test> Tests { get; set; } = new List<Test>();
        
    }