Невозможно использовать методы из класса службы домена в 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();
Другие вопросы по тегам