Невозможно использовать методы из класса службы домена в WCF Ria?
Я пытаюсь создать приложение silverlight, которое берет имя пользователя, фамилию, пароль, адрес электронной почты в текстовые поля, а затем добавляет их в базу данных.
Для этого я использую WCF Ria Services
,
Шаги, за которыми я следовал:
добавленной ADO.NET Entity Data Model
а потом Domain Service class
в моем проекте (в веб-части).
Теперь у меня есть некоторые предопределенные методы в моем классе DomainService, такие как методы вставки, обновления. Я знаю, как показать данные в DataGrid
но это не то, что я хочу.
Что я хочу, чтобы настроить все это для:
Когда пользователь нажимает кнопку отправки, внутри должен быть метод AddInfo(all parameters)
который может добавить все данные в мою базу данных sql server {в настоящее время LocalHost}.
Проще говоря, доступ к вашей базе данных с помощью пользовательских методов для добавления данных на сервере SQL с помощью WCF Ria Services
Я знаю, что это было очень просто при работе в формах.net и все такое. Но как насчет Silverlight и WCF?
Пожалуйста, Предложите.
2 ответа
Проще говоря, доступ к вашей базе данных с помощью пользовательских методов для добавления данных на сервере SQL с помощью WCF Ria Services
Что вы должны сделать, это написать собственный метод на стороне сервера.
На стороне сервера у вас есть 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 Services, автоматически сгенерированный прокси-класс, который соответствует вашему DomainService
будет содержать ваш новый метод, и вы сможете вызывать его используя:
yourDomainContext ctx = new yourDomainContext();
ctx.AddNewUser("dsd", "ds", 42).Completed += (sender, e) =>
{
// Called asynchronously when the job is done
};
Если у вас уже есть метод 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();