我正在尝试构建一个silverlight应用程序,它在文本框中输入用户的名字,姓氏,通行证,电子邮件地址,然后将它们添加到数据库中。
为此,我正在使用WCF Ria Services
。
我遵循的步骤是:
在我的项目中(在网页部分中)添加了ADO.NET Entity Data Model
然后Domain Service class
。
现在我的DomainService类中有一些预定义的方法,比如Insert,Update方法。我知道如何在DataGrid
中显示数据,但这不是我想要的。
我想要的是定制所有这些:
当用户点击提交按钮时,应该有像AddInfo(all parameters)
这样的方法,它可以将所有数据添加到我的sql server数据库{目前LocalHost}。
简单来说,通过自定义方法访问数据库,使用WCF Ria Services在sql server中添加数据
我知道在使用.net表单时非常简单。但是Silverlight& WCF ria?
请建议。
答案 0 :(得分:1)
如果您的域服务上已经有Insert方法,您应该可以从客户端调用:
//add your new data to the context
MyDomainServiceContext.Entity.Add(myEntity); //(where "Entity" is your entity Type)
//send all the changes to the server
MyDomainServiceContext.SubmitChanges();
答案 1 :(得分:1)
简单来说,通过自定义方法访问数据库即可添加 使用WCF Ria服务的SQL Server中的数据
您应该做的是在服务器端编写自定义方法。
在服务器端,您有一个DomainService
类,应该从LinqToEntitiesDomainService<TContext>
继承。
只需在此类中添加Invoke
属性的方法,例如:
[Invoke]
public void AddNewUser(string name, string firstName, int age)
{
// Put logic here to add the user to the DB
}
将用户添加到数据库的逻辑非常简单,只需创建一个新的Entity
,将其添加到上下文并调用context.SubmitChanges();
编译客户端RIA服务项目时,与您的DomainService
对应的自动生成的代理类将包含您的新方法,您将能够使用以下方法调用它:
yourDomainContext ctx = new yourDomainContext();
ctx.AddNewUser("dsd", "ds", 42).Completed += (sender, e) =>
{
// Called asynchronously when the job is done
};