目前以下两个功能都有效。第一个是读取NFL PLayers的XML表并将该XML数据转换为一堆播放器(var播放器),然后第二个函数从第一个函数获取数据并将它们发送到我用EF6创建的表中并更新数据库。我的问题是,有更好的方法吗?
var players = from p in X.Descendants("FantasyPlayer") select new
{
id = p.Element("PlayerID").Value,
firstname = p.Element("Name").Value,
team = p.Element("Team,").Value
};
foreach (var p in players)
{
var nflplayer = new NFLPlayer();
nflplayer.ID = Convert.ToInt32(p.id);
nflplayer.FirstName = p.firstname;
nflplayer.Team = p.team;
db.NFLPlayers.Add(nflplayer);
}
db.SaveChanges();
我觉得应该有一种方法可以一步完成所有这一切,但还没有能够弄明白......如果有人能提出更好的方法或替代方式,我正在倾听。
答案 0 :(得分:0)
你有两件事: 1.初始数据采用xml格式 2.数据必须以数据库模式提供的格式保存
所以我在这项任务中至少看到了三个步骤:
1.阅读初始数据
2.准备保存到数据库的数据(从xml转换为数据库模型)
3.保存到数据库
您当前的逻辑正是您需要根据规范执行的操作。
现在,如果您想要这样做,您只能优化代码。
答案 1 :(得分:0)
试试这个
foreach(var player in X.Descendants("FantasyPlayer"))
{
var nflplayer = new NFLPlayer() {
ID = Convert.ToInt32(player.id),
FirstName = player.firstname,
Team = player.team
});
db.NFLPlayers.Add(nflplayer);
}