asp.net MVC - 使用 Linq 将数据从相关表复制并插入到一组新的相关表中的最佳方法是什么



我在一个网络游戏上工作,我使用asp.net mvc,linqtosql。

我有3个存储默认游戏值的表:DefaultRegions、DefaultSubRegions和DefaultCountrys。这3个表由于主键/外键而相互关联。

当有人创建一个新游戏时,我需要将这些表的值复制到3个表中,分别为Regions、SubRegions和Countrys。在这3个表中,保存正在进行的游戏的值(添加GameId以区分游戏)。

现在,我需要更新关系,因为主键显然发生了变化。

有人知道以有效的方式实现这一点的方法吗?

我的想法会涉及繁琐的前臂环,也许其他人有想法?

edit看起来我最初的想法是最好的方法,感谢

尝试一下,它应该在提交时创建并关联所有新的自动生成的ID。

var defaultRegions = from r in DefaultRegions
             select r;
IList<Region> rlist = new List<Region>();
foreach(var dr in defaultRegions) {
    var r = new Region {
        Name = dr.Name };
    foreach(DefaultSubRegion dsr in dr.DefaultSubRegions) {
        var sr = new SubRegion {
            Name = dsr.Name };
        foreach(DefaultCountries dc in dsf.DefaultCountries) {
            var c = new Country {
                Name = dc.Name };
            sr.Countries.Add(c);
        }
        r.SubRegions.Add(sr);
   }
   rlist.Add(r);
}
DataContext dc = new DataContext();
dc.Regions.InsertAllOnSubmit(rlist);
dc.Submit();

这应该对您有效,而且这是我发现的复制数据的最简单方法。

相关内容

  • 没有找到相关文章

最新更新