1
在我的WCF web服务我已经从数据库中,没有麻烦阅读可言。今天我尝试了更新,但很快发现这些更改实际上并未保存到数据库中。我没有收到任何错误或异常。我花了几个小时来研究这个问题,但没有运气。我发现有很多类似的问题,但他大部分时间的原因是,该表被写入没有一个主键,但是这是不是与此表的情况。C#中的LINQ to SQL>更新和插入不起作用。表中有PK
下面是一些代码:
var db = new dbDataContext(Convert.ToString(ConfigurationManager.AppSettings["sConn"]));
...
var bookingRow = (from mBooking in db.d_bookings
where mBooking.booking_id == bookingID
select new BookingResult
{
guideID = mBooking.user_id_guide == null ? 0 : (int)mBooking.user_id_guide,
adultShow = mBooking.booking_nAdults_show == null ? 0 : (int)mBooking.booking_nAdults_show,
childShow = mBooking.booking_nChild_show == null ? 0 : (int)mBooking.booking_nChild_show,
}
).Single();
bookingRow.guideID = someNewValue;
bookingRow.adultShow = someNewValue;
bookingRow.childShow = someNewValue;
try
{
db.SubmitChanges();
}
catch (Exception ex)
{
return "{\"result\" : \"false\" }";
}
而且BookingResult类很简单:
public class BookingResult
{
public int guideID { get; set; }
public int adultShow { get; set; }
public int childShow { get; set; }
}
这是我的第一个项目,WCF和LINQ的工作,似乎大部分难以置信的直线前进,但这引发了我一个循环。任何帮助是极大的赞赏!
解决:问题是,我正在读成不贴在我的DataContext自定义类。删除类,只选择整个行工作正常。
var bookingRow = (from mBooking in db.d_bookings
where mBooking.booking_id == bookingID
select mBooking
).Single();
其实我刚才读的其他地方,我可以读出的信息为一类我自己方便使用。这里的想法是检索想要更新的行,进行一些更改,然后将更改提交到数据库。编辑:忘记提及没有名为BookingResult的表,它只是我创建的用于存储检索行的类的名称。 – dekin88 2012-02-23 15:45:23
我现在有工作!我停止阅读我的自定义类,并选择了整行。现在我的更改正在工作。感谢您指点我正确的方向! – dekin88 2012-02-23 15:59:46