2016-12-29 2 views
0

Я не могу скомпилировать свой проект для переноса кода в инфраструктуру сущности за определенный момент. Я читаю значения из xml для заполнения таблицы. У меня есть следующий код:Неизвестный CS1003 Ошибка

 //EnrolmentProgramStartDate 

     var programQuery = from r in context.EnrolmentPrograms 
          select r; 

     var programList = programQuery.ToList<Entities.MetaData.Enrolment.EnrolmentProgram>(); 

     resourceName = "LearnLogicElicos_WebApi.SeedData.MetaData.Enrolment.enrolment_program_start_date.xml"; 
     stream = assembly.GetManifestResourceStream(resourceName); 
     xml = XDocument.Load(stream); 
     List<Entities.MetaData.Enrolment.EnrolmentProgramStartDate> enrolmentStartdates = new List<Entities.MetaData.Enrolment.EnrolmentProgramStartDate>(); 

     foreach (var e in xml.Root.Elements("StartDate")) 
     { 
      DateTime.TryParse((string)e.Element("Start"), out var startDate); 

      enrolmentStartdates.Add(new Entities.MetaData.Enrolment.EnrolmentProgramStartDate() 
      { 
       PrgmCode = (string)e.Element("ProgramCode"), 
       StartDate = startDate 
      }); 
     } 

     var programStartdateWithFk = (from t1 in enrolmentStartdates 
             join t2 in programList 
             on t1.PrgmCode equals t2.PrgmCode 
             select new Entities.MetaData.Enrolment.EnrolmentProgramStartDate 
             { 
              PrgmCode = t1.PrgmCode, 
              StartDate = t1.StartDate, 
              EnrolmentProgramFk = t2.PrgmPk 
             }); 

     context.EnrolmentProgramStartDates.AddRange(programStartdateWithFk); 

     context.SaveChanges(); 

Я получаю следующее сообщение об ошибке в окне вывода: Configuration.cs(179,71,179,80): error CS1003: Syntax error, ',' expected, но я не получаю никаких ошибок в списке ошибок, и я не могу за жизнь мне увидеть недостающую ,.

XML-выглядит следующим образом:

<?xml version="1.0" encoding="utf-8" ?> 
<Starts> 
    <StartDate> 
    <ProgramCode>DEC25</ProgramCode> 
    <Start>2018,1,2</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>DEC15</ProgramCode> 
    <Start>2018,3,19</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>DEC10</ProgramCode> 
    <Start>2018,4,30</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>DEC5W</ProgramCode> 
    <Start>2018,6,4</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>DEC5R</ProgramCode> 
    <Start>2018,6,4</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>DEC5S</ProgramCode> 
    <Start>2018,6,4</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>DEC5L</ProgramCode> 
    <Start>2018,6,4</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>GE</ProgramCode> 
    <Start>2018,1,2</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>GE</ProgramCode> 
    <Start>2018,1,8</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>GE</ProgramCode> 
    <Start>2018,1,15</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>GE</ProgramCode> 
    <Start>2018,1,22</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>GE</ProgramCode> 
    <Start>2018,1,29</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>GE</ProgramCode> 
    <Start>2018,2,5</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>ITP</ProgramCode> 
    <Start>2018,1,2</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>ITP</ProgramCode> 
    <Start>2018,1,8</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>ITP</ProgramCode> 
    <Start>2018,1,15</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>ITP</ProgramCode> 
    <Start>2018,1,22</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>ITP</ProgramCode> 
    <Start>2018,1,29</Start> 
    </StartDate> 
    <StartDate> 
    <ProgramCode>ITP</ProgramCode> 
    <Start>2018,2,5</Start> 
    </StartDate> 
</Starts> 

Может кто-то пожалуйста, скажите мне, как: а) где отсутствует запятая, или б) то, что реальная проблема ведет меня, чтобы получить эту ошибку есть.

Спасибо.

+1

Вы правы - плохой заголовок. Я изменил его, чтобы лучше отразить мою проблему. – Ben

ответ

3

Ошибка в этой строке:

DateTime.TryParse((string)e.Element("Start"), out var startDate); 

И вы получите его из-за var ключевого слова. Вы должны удалить его. Не ясно, почему вы его там, но если вы пытаетесь объявить переменную, то сделать это на предыдущей строке:

DateTime startDate; 
DateTime.TryParse((string)e.Element("Start"), out startDate); 

Сказав, что, если вы будете ждать некоторое время, C# версии 7 будет на самом деле поддержка это (хотя неясно, можете ли вы использовать var вместо явного типа еще). Взгляните сюда на предлагаемые функции: https://blogs.msdn.microsoft.com/dotnet/2016/08/24/whats-new-in-csharp-7-0/

Смежные вопросы