Свойства помощника из сущностей в клиенте Silverlight, общий код - PullRequest
0 голосов
/ 14 декабря 2011

Я пытаюсь выяснить, как создать дополнительные «вычисляемые» свойства, предоставляемые в клиенте Silverlight для данного типа сущности. Моя структура решения выглядит следующим образом (упрощенно):

Пространство имен «Доступ к данным», класс Lib, в котором хранится мой EDMX Веб-приложение пространства имен "Web", в котором размещается приложение silverlight, а также служба домена, которая проецируется через EDMX (поэтому имеется ссылка на проект "Доступ к данным".) Пространство имен "SLApp", приложение Silverlight

Одна из моих сущностей - Персона (очень упрощенно):

public partial class Person
{
   public string FirstName {get; set;}
   public string LastName {get; set;}
}

Я хочу иметь свойство "помощник" / "вычислено", называемое FullName, которое просто объединяет имя и фамилию. В прошлом это было легко; создайте свой собственный публичный частичный класс Person и добавьте свойство / логику, а затем я могу использовать его как обычное свойство. Но служба домена RIA, похоже, не раскрывает это свойство, поэтому я не могу использовать его на клиенте. Если бы EDMX был в веб-приложении, я мог бы использовать файл .Shared.cs и включить его в приложение SL (я полагаю), но я не хочу, чтобы мой EDMX был в веб-приложении (кажется грязным :))

Я использую шаблон MVVM, чтобы я мог просто создать Свойство для класса ViewModel, но, похоже, мне придется дублировать эту логику несколько раз (любой ViewModel, для которой мне нужно свойство FullName). Я попытался создать метод расширения для объекта Person в SL-приложении под названием FullName, но, очевидно, вы не можете привязать методы расширения.

Я новичок в Silverlight, это мое первое "настоящее" приложение, так что, может быть, я просто упускаю что-то очень простое ... Я надеюсь, что да. Любая помощь будет великолепна.

Спасибо!

1 Ответ

0 голосов
/ 15 декабря 2011

Вы добавили [DataMember] Атрибут к вашему расчетному имуществу?

[DataMember]
public string FullName
{
    get { return string.Format("{0} (1)", this.FirstName, this.LastName); }
}
...