EF Code Only Наследование на клиенте - PullRequest
0 голосов
/ 10 ноября 2011

(извините за мой плохой английский)

В приложении Silverlight 4 + RIA Services + EF4 Code Only у меня есть несколько классов в моем DbContext, которые содержат поле "IsActive" - ​​я хочу знать от клиентаесли сущность имеет это поле и получает его.Моей первой мыслью было использование интерфейса:

public interface IHasActiveField
{
    bool IsActive {get; set;}
}

public class Data: IHasActiveField
{
    public bool IsActive {get; set;}
}

Это прекрасно работает на сервере, но на клиенте код, сгенерированный RIA, не имеет ссылки на мой интерфейс, поэтому я не могу проверить if (obj is IHasActiveField) -то же самое происходит, если я пытаюсь наследовать от базового класса с полем IsActive, на стороне клиента класс Data всегда наследуется от Entity - я, вероятно, мог бы использовать отражение, чтобы увидеть, существует ли поле, или просто проверитьдля каждого типа (if (obj is Data)), но если возможен более элегантный способ, он будет лучше:)

1 Ответ

1 голос
/ 12 ноября 2011

Следующий блог звучит как то, что вы хотите.

"Все, что вам нужно сделать, это использовать частичный класс для вашей модели и назвать файл с помощью .shared.cs (или .shared.vb). Этот файл будет автоматически скопирован в проект Silverlight, поэтому все, что в нем находится, будет сохранено на клиенте. Итак, со всей реализацией интерфейса в этом файле, все готово. "http://jeffhandley.com/archive/2009/03/30/ria-services-custom-interfaces.aspx

...