我正在使用 WCF-webservice 并Linq-To-SQL
插入一条新记录。
但是,在 web 服务中,我设置了两个字段,CreatedBy
并且Created
,但即使我使用ref
参数(如MSDN 上所建议的那样),更改也不会反映在客户端上。因此,当我调试服务时,设置了属性并正确插入了记录,但在调用方法中,对象的属性仍未设置。
这将在以后引起问题,例如,如果我尝试删除它,我会得到以下异常,db.SubmitChanges()
因为这些列是 non-null
:
System.Data.SqlTypes.SqlTypeException:SqlDateTime 溢出。必须介于 1753 年 1 月 1 日上午 12:00:00 和 9999 年 12 月 31 日晚上 11:59:59 之间。
这是客户端的插入方法(winforms应用程序):
private void Add_Status()
{
using (var db = new ERP_ServiceClient())
{
var status = new Erp_ServiceReference.Status();
status.Name = this.txtStatusNameAdd.Text;
db.InsertStatus(status, this.IdUser);
statusBindingSource.Add(status);
}
this.txtStatusNameAdd.Text = "";
this.txtStatusNameAdd.Select();
}
这是网络服务方法:
public void InsertStatus(ref Status status, int userID)
{
using (var db = new ERPDataContext())
{
status.CreatedBy = userID;
status.Created = DateTime.Now;
db.Status.InsertOnSubmit(status);
db.SubmitChanges();
}
}
我究竟做错了什么?我的 wcf、winforms 和 linq-to-sql 技能都生疏了(这就是我选择它们的原因)。