开发平台: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();
}
但是发现无法更新到数据库中。。。3、请问各位大侠应该怎样做才能更新到数据库中啊?
希望各位大牛能帮忙回答这3个问题啊。。。也帮忙解决一下我碰到的问题,谢谢了啊^^
------解决方案--------------------
该回复于2010-11-12 09:59:42被版主删除
------解决方案--------------------
您好、这个问题您解决了吗、能告知一下解决的方法吗、谢谢。
------解决方案--------------------
先获取,然后再更改
public void ResetPassword(User currentUser)
{
User user= this.DataContext.User.Where(p=>p.id=currentUser.id).SingleOrDefault<User>();
user.Password="12345";
this.DataContext.SubmitChanges();
}
------解决方案--------------------
=.=! 一零年的帖子, 我.......