RIA域服务中的自定义命名插入方法?

时间:2012-06-18 14:36:11

标签: c# silverlight wcf-ria-services ria

我在SQL Server中有一些表,用于在用户登录Silverlight应用程序时进行记录。

我为每个表创建了一个实体。一个示例是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仍然是完全空的......

2 个答案:

答案 0 :(得分:0)

是的,您可以add a method加入标有InvokeAttribute属性的域服务类。该方法将作为客户端上下文类的方法出现。

答案 1 :(得分:0)

如果需要,可以将自己的自定义方法添加到DomainService,但在插入上下文和SubmitChanges时不会自动调用。您必须手动调用它。

如果要覆盖Insert方法的实现,只需修改DomainService中Insert * EntityName *方法的内容即可。