0

SQL Serverには、ユーザーがSilverlightアプリケーションにログインするときにログに記録するために使用しているテーブルがいくつかあります。

これらのテーブルごとにエンティティを作成しました。1つの例はApplicationUsageLog、ApplicationID、Date、およびUserIDをログに記録する場合です。それらは主にSilverlight側から取得されます。

Login(AppID,UserID)そのテーブルに挿入できるというメソッドを作成したいと思います。

それは可能ですか?

ありがとう!

編集以下は何らかの理由で機能しません:

    [Invoke]
    public void Login(int AppID,string EmployeeNo)
    {
        var aul = new ApplicationUsageLog{ ApplicationID = AppID, LoginDate = System.DateTime.Now, EmployeeNo = EmployeeNo };
        if ((aul.EntityState != System.Data.EntityState.Detached))
        {
            this.ObjectContext.ObjectStateManager.ChangeObjectState(aul, System.Data.EntityState.Added);
        }
        else
        {
            try
            {
                this.ObjectContext.ApplicationUsageLogs.AddObject(aul);
            }
            catch (System.Exception e) { }
        }
    }

私は見ることができaul、すべてがよさそうだ。しかし、最後にブレークポイントを設定すると、this.ObjectContext.ApplicationUsageLogsまだ完全に空です。

4

2 に答える 2

0

はい、InvokeAttribute属性でマークされたドメイン サービス クラスにメソッドを追加できます。メソッドは、クライアント コンテキスト クラスのメソッドとして表示されます。

于 2012-06-18T14:40:17.023 に答える
0

必要に応じて独自のカスタム メソッドを DomainService に追加できますが、コンテキストに挿入して SubmitChanges を実行しても自動的には呼び出されません。手動で呼び出す必要があります。

Insert メソッドの実装をオーバーライドしたい場合は、DomainService の Insert*EntityName* メソッドの内容を変更するだけです。

于 2012-06-18T14:40:58.897 に答える