日期:2014-05-20  浏览次数:20955 次

foreach循环插入数据只能插入第一条
public PlayList SelectByMids(string mids)
        {
            string sql="select * from Music where Mid in "+mids;
            var result = db.ExecuteQuery<Music>(sql);
            PlayList pl=new PlayList();
            foreach (var item in result)
            {
                pl.Mid = item.Mid;
                pl.Mname = item.Mname;
                pl.Sname = item.Sname;
                pl.Url = item.Url;
                db.PlayList.InsertOnSubmit(pl);
                db.SubmitChanges();
            }
            return pl  ;
        }

PlayList表中有个ID自增长主键,循环插入时,第一条数据正常,第二条就重复了,报错“不能添加已经存在的实体。”不知道哪错了。。。
------最佳解决方案--------------------
PlayList pl=new PlayList(); 放到foreach里面
------其他解决方案--------------------
引用:
PlayList pl=new PlayList(); 放到foreach里面



public PlayList SelectByMids(string mids)
        {
            string sql="select * from Music where Mid in "+mids;
            var result = db.ExecuteQuery<Music>(sql);
            foreach (var item in result)
            {
                PlayList pl=new PlayList();
                pl.Mid = item.Mid;
                pl.Mname = item.Mname;
                pl.Sname = item.Sname;
                pl.Url = item.Url;
                db.PlayList.InsertOnSubmit(pl);
                db.SubmitChanges();
            }
            return pl  ;
        }