У меня появилось много тупиков по этому вопросу. Предположительно, .NET 3.5 SP1 поддерживает поддержку Entity Framework ADO.NET в контрактах WCF. Но когда я ищу твердую информацию об этом, я не получаю много ответов. Я нашел этот фрагмент в потоке MSDN. У кого-нибудь есть опыт? Что случилось с [DataContract]? Это все для этого? Почему так мало материала?Контракты WCF от структуры сущностей?
Это ответ Тима Маллалье в Microsoft.
Типы сущностей, которые генерируются в Структуре Entity Framework, являются по умолчанию Контрактами данных. Если бы мне нужно было создать простую модель в Entity Designer, например: Тип Entity Cart по умолчанию является DataContract со всеми свойствами, аннотированными как элементы данных. Затем мы можем использовать это в службе WCF следующим образом:
[ServiceContract]
public interface IService1
{
[OperationContract]
Cart[] AllCarts();
}
public class Service1 : IService1
{
public Cart[] AllCarts()
{
using (MSPetShop4Entities context = new MSPetShop4Entities())
{
var carts = from c in context.Carts select c;
return carts.ToArray();
}
}
}
Как Сущности DataContracts теперь вы можете свернуть свои услуги по своему усмотрению и отправить их по проводам.
В конце концов я сделал именно это. Надеюсь, это не ошибка в долгосрочной перспективе. Недостаток, который я вижу до сих пор, заключается в том, что я закончил реализацию шаблона репозитория на стороне клиента, а не на стороне модели. Я не доволен этим и, вероятно, придется реорганизовать позже. – Weej
Опасность ADO.NET Data Services заключается в том, что выполнить DDD-подход может быть довольно сложно. Вы должны рассматривать службы данных ADO.NET так же, как: услуги передачи данных. Если вам нужен более сильный набор сервисов модели, вам нужно создать это отдельно. – 2009-03-24 00:45:20
Даже с последней версией ADO .NET Data Services и EFCF 4.1 она по-прежнему сильно ограничивает. Например, ни один из операторов агрегации из LINQ не поддерживается, в том числе 'Distinct()'. Если вам нужно что-то большее, чем функции CRUD, вы должны держаться подальше от Data Services. – Yuck