首页 新闻 搜索 专区 学院

linq to sql问题

0
悬赏园豆:10 [已解决问题] 解决于 2013-12-09 12:09

using (TransactionScope trans = new TransactionScope())
            {
                try
                {
             DataContextDataContext db = new DataContextDataContext ();
            db.Member.InsertAllOnSubmit(members);
            db.SubmitChanges();


                }
                catch (Exception ex)
                {
                    throw (ex);
                }
                trans.Complete();
            } 

上面是插入多个会员的代码,插入数据库中不存在的会员是正常的。

问题是:如果插入10个会员 其中一个会员已存在 会报异常 然后 删掉存在会员 其他九个也不能插入了 除非程序重启

问题补充:

异常:不能添加其键已在使用中的实体。

一羽赐命的主页 一羽赐命 | 初学一级 | 园豆:2
提问于:2013-12-09 10:47
< >
分享
最佳答案
0

其实保存会员信息的逻辑应该是这样才合理

1.检查会员账号是否占用,即会员信息是否存在。

2.如果不不存在则查放一条记录,存在则提示已存在在该会员信息。

你批量保存是为会造成关键字存在出现异常。批量保存有批量保存的好处,但是关键业务上有逻辑判断的必要。

收获园豆:10
jerry-Tom | 老鸟四级 |园豆:4077 | 2013-12-09 11:01
其他回答(1)
0

两种解决方法

1 保存前要先确认,新的数据在数据库中没有存在的,再批量插入,

2 存在的数据就跳过,只保存不存在的,然后向客户端返回未能插入的数据。

Zery | 园豆:6069 (大侠五级) | 2013-12-09 11:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册