关于DomainService的添加、删除服务
开发平台:Visual studio2010 ultimate、Silverlight4
我用WCF RIA Service构建Silverlight与数据库的通信,我数据库中有一个User表,在Asp.net中创建了Ado.net entity data model,把User表设置成Enable Editing,生成User实体之后,我创建了一个DomainService,名字叫UserDomainService,在里面系统自动生成GetUser()、InserUser(User user)、UpdateUser(User user)等方法(这些方法都是公有的),但是在Silverlight客户端中通过域上下文(UserDomainContext)的实例userContext却只能访问GetUser()方法,不能访问InserUser等方法,在Silverlight这个项目的根目录下有个Generated_Code文件夹,里面有***.web.g.cs这个文件,查看了一下系统只在***.web.g.cs中自动生成了GetUserQuery()方法,但是没有生成InserUser、UpdateUser等服务相应的方法。1、请问各位大牛这是为什么啊?2、应该怎么操作才会生成InserUser等服务相应的方法呢?
由于无法调用UpdateUser方法,我只能自己在UserDomainService中定义一个函数来测验一下,代码如下:
public void ResetPassword(User currentUser)
{
currentUser.Password = "12345";
//this.ObjectContext.User.Single(j => j.UserID == currentUser.UserID).Password = "12345";
this.ObjectContext.User.AttachAsModified(currentUser, this.ChangeSet.GetOriginal(currentUser));
}
private void btnResetPassword_Click(object sender, RoutedEventArgs e)
{
UserDomainContext userContext = new UserDomainContext();
userContext.ResetPassword((User)dgShowData.SelectedItem);
//dgShowData是DataGrid控件,调试的时候dgShowData.SelectedItem这个是存在数据的,问题不在这里,估计是在DomainService那里
userContext.SubmitChanges();
}