私は WCF Web サービスを使用しておりLinq-To-SQL
、新しいレコードを挿入しています。
ただし、Web サービスでは 2 つのフィールドと を設定してCreatedBy
いますCreated
が、パラメーターを使用しても( MSDNref
で提案されているように)、変更はクライアントに反映されません。したがって、サービスをデバッグすると、プロパティが設定され、レコードが正しく挿入されますが、呼び出し元のメソッドではオブジェクトのプロパティがまだ設定されていません。
これは後で問題を引き起こします。たとえば、削除しようとすると、次の例外が発生します。db.SubmitChanges()
これらの列は 次のとおりですnon-null
。
System.Data.SqlTypes.SqlTypeException: SqlDateTime オーバーフロー。1753 年 1 月 1 日 12:00:00 AM から 9999 年 12 月 31 日 11:59:59 PM の間である必要があります。
クライアント(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();
}
これは Web サービス メソッドです。
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 のスキルはさびています (それが私がそれらを選択した理由です)。