Ben*_*Ben 1 c# entity-framework ef-migrations
我无法为超过特定点的实体框架中的代码优先迁移而编译我的项目。我正在从xml中读取值以填充表。我有以下代码:
//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();
Run Code Online (Sandbox Code Playgroud)
我在输出窗口中收到以下错误: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>
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我:a)缺少的逗号在哪里,或b)导致我得到此错误的真正问题是什么。
谢谢。
错误在此行上:
DateTime.TryParse((string)e.Element("Start"), out var startDate);
Run Code Online (Sandbox Code Playgroud)
而且您通过var关键字获得它。您必须删除它。目前尚不清楚为什么要在其中放置它,但是如果要声明该变量,请在上一行进行操作:
DateTime startDate;
DateTime.TryParse((string)e.Element("Start"), out startDate);
Run Code Online (Sandbox Code Playgroud)
话虽这么说,但是如果您稍等片刻,C#版本7实际上将支持此功能(尽管尚不清楚是否可以使用它var来代替显式类型)。在此处查看建议的功能:https : //blogs.msdn.microsoft.com/dotnet/2016/08/24/whats-new-in-csharp-7-0/
| 归档时间: |
|
| 查看次数: |
1202 次 |
| 最近记录: |