积极答复者
在用RIA开发时怎么把一个实体对象传到服务器

问题
-
我在服务器用实体框架映射了数据库中的Payment 表,然后在DomainService中设置了Payment 类为Enable editing,在程序运作时在客户端实例化了这个对象(Payment),然后想把这个对象回传到服务器端进行一些操作,但是程序编译就报错。
下面是我的代码节选
namespace IPPG.Web
{
public partial class IPPGDomainService
{
public Payment SavePayment(Payment payment)
{
payment.PaymentID = Guid.NewGuid();...其他代码...
return payment;
}
}
}出现这个错误
错误 1 Parameter 'payment' of domain operation entry 'SavePayment' must be one of the predefined serializable types. IPPG
PS:2010-10-19修改了问题,让问题描述更加准确
- 已编辑 超然 2010年10月19日 4:41 更加准确的表述问题
2010年10月17日 4:57
答案
全部回复
-
你没有理解我的意思,我把我的测试代码全部贴出来,大家帮我看看怎么回事啊,超级郁闷中
//客户端控件代码
public partial class MainPage : UserControl
{
ABC a;
SilverlightApplication5.Web.DomainService1 ds = new Web.DomainService1();
public MainPage()
{
InitializeComponent();
}private void button1_Click(object sender, RoutedEventArgs e)
{ds.Load(ds.NewABCQuery(), CCC, null);//调用服务器代码获得对象、如果这里我直接在客户端创建,同样有问题
}public void CCC(LoadOperation<Web.ABC> lo)
{
a = lo.Entities.First();//获得了对象,把对象记录下来}
private void button2_Click(object sender, RoutedEventArgs e)
{a.C=9;//随便赋值
ds.SaveABC(a);//调用服务器代码进行保存操作(这里的保存失效了)
}
}服务代码
public ABC NewABC()
{
return this.ObjectContext.ABC.CreateObject();//对应button1代码,返回一个对象}
public void SaveABC(ABC abc)//对应button2进行保存,程序没有任何效果
{
abc.B = 11;//因为有些值只有服务器有,所以我必须要在服务器赋值。
this.ObjectContext.ABC.Attach(abc);
this.ObjectContext.SaveChanges();
}2010年10月21日 7:47 -
-
希望以上教程能对你有所帮助!
2010年10月30日 6:46 -
问题还没有解决?
private void button2_Click(object sender, RoutedEventArgs e)
{ a.C=9;//随便赋值
ds.SaveABC(a);//调用服务器代码进行保存操作(这里的保存失效了)
}改成:
private void button2_Click(object sender, RoutedEventArgs e)
{ds.SaveChanges();\\即可
}服务端代码(不要,去掉)
public void SaveABC(ABC abc)//对应button2进行保存,程序没有任何效果
{
abc.B = 11;//因为有些值只有服务器有,所以我必须要在服务器赋值。
this.ObjectContext.ABC.Attach(abc);
this.ObjectContext.SaveChanges();
}2010年11月2日 7:02