【问题标题】:XDocument insert XML data into SQL using Linq and Entity Framework [closed]XDocument 使用 Linq 和实体框架将 XML 数据插入 SQL [关闭]
【发布时间】:2016-07-09 06:28:28
【问题描述】:

目前以下两个功能有效。第一个是读取 NFL 球员的 XML 表并将该 XML 数据转换为一堆球员(var player),然后第二个函数从第一个函数获取数据并将它们发送到我用 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(); 

我觉得应该有一种方法可以一步完成,但还没有弄清楚....如果有人能提出更好的方法或替代方法,我正在倾听。

【问题讨论】:

  • 我投票结束这个问题,因为它要求我们对工作代码进行代码审查。 Code Review 可能更合适,但请务必在询问之前查看他们的帮助中心。
  • 哦,好点 theB,没有意识到有一个代码审查部分。关闭它很好。我该怎么做?

标签: c# xml asp.net-mvc entity-framework linq


【解决方案1】:

试试这个

           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);
            }

【讨论】:

  • 根据您的建议,我能够使其工作如下:
  • ID = Convert.ToInt32(p.Element("PlayerID").Value),
【解决方案2】:

你受限于两件事:
1.初始数据为xml格式
2. 数据必须以数据库模式提供的格式保存

所以我在这个任务中看到至少三个步骤:
1. 读取初始数据
2.准备数据保存到数据库(从xml转换为数据库模型)
3. 保存到数据库

您当前的逻辑正是您需要根据规范执行的操作。

所以现在你只能优化你的代码,如果你想这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 2011-04-01
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多