Особенностью сгенерированной доменной службы является не файл .metadata.cs (вы можете сохранить его и использовать, но это не решит вашу проблему).
Проблема возникает как-то потому, что RIAservices (?) нужен «поставщик описания службы домена» для открытых объектов Linq to EF.Класс LinqToEntitiesDomainService имеет уже примененный класс LinqToEntitiesDomainServiceDescriptionProviderAttribute, поэтому сгенерированные доменные службы, которые наследуют его, также наследуют поставщика.
Когда вы создаете свою собственную службу домена, производную от DomainService, и открываете для нее объекты,Нужно применить этот атрибут самостоятельно.Кроме того, поскольку поставщик не может вывести тип контекста объекта из базового класса службы домена (что он может и делает, если базовый класс является LinqToEntitiesDomainService), необходимо указать тип контекста объекта в конструкторе атрибута, например:
[EnableClientAccess()]
[LinqToEntitiesDomainServiceDescriptionProvider(
typeof(YourObjectContextType))]
public class ClientDomainService : DomainService
{
...
}
Это должно исправить.
Обратите внимание, что это означает, что если вы надеялись абстрагировать свой объектный контекст от вашей доменной службы, вы будете разочарованы.Я выбрал, казалось бы, популярную модель хранилища, в которой весь код, работающий с контекстом объекта, переходит к поставщику, используемому службой домена.Это облегчает модульное тестирование, но, очевидно, не устраняет зависимость доменной службы от контекста объекта.Контекст необходим для того, чтобы службы RIA могли понять ваши объекты или, по крайней мере, те, на которые ссылается сущность домена (например, EntryCategoriesVersions в вашем случае).