未知CS1003错误

问题描述:

我无法编译我的项目,以便在实体框架中的代码优先迁移超过特定点。我正在读取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> 

可能有人请告诉我是:a)在缺少逗号,或b)什么导致我得到这个错误,真正的问题是。

谢谢。

+1

你是对的 - 坏标题。我改变了它试图更好地反映我的问题。 – Ben

的错误是在这条线:

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/