在LINQ to SQL中有一个类Message,一个页面试图对Message进行增加然后写入数据库。
代码如下:
bool isWriteInMessage; int m_id = 0; Message m = new Message(); m.sender = sender; m.message_content = message; m.send_time = DateTime.Now; db.Message.InsertOnSubmit(m); try { db.SubmitChanges(); m_id = (int)(m.message_id); //先写入数据库,然后才能获得messageId的值 isWriteInMessage = true; } catch { isWriteInMessage = false; }
当Web程序的编译模式设为Debug时,db.SubmitChanges()方法能成功执行,不会抛出异常,但是当编译模式改为Release时,运行到db.SubmitChanges()里居然就跑到了catch块?这是怎么回事呢?
就这点信息,暂时看不出什么问题,你可以贴下详细的错误信息。
由于我这里catch了异常因此页面上没有错误信息。但是debug并且单步执行的时候,程序运行到db.SubmitChanges()以后按F11,代码跳到了catch块的第一条语句isWriteInMessage = false上
@飞鸟_Asuka: 你就加个Exception,然后看异常呗。这种在保存时候的错误,一般是由于你的实体对象没有通过严重,比如你定义了实体某些属性不能为空,但是却没赋值这种。
看看这里的代码----->SubmitChanges()
也许是debug 和release 的config 文件不同 比如connectionString部分
那么具体该怎么改呢
我在工程属性里和Web.config都没有找到相应设置