WCF Контракты от Entity Framework?

entity-framework wcf

Вопрос

У меня много тупиков в этом вопросе. Предположительно, в .NET 3.5 SP1 есть поддержка сущностей ADO.NET Entity Framework в контрактах WCF. Но когда я ищу достоверную информацию, я не получаю много ответов. Я нашел этот фрагмент в потоке MSDN. У кого-нибудь есть опыт с этим? Что случилось с [DataContract]? Это все, что нужно? Почему так мало материала по этому поводу?

Это ответ от Тима Маллалиу в Microsoft.

Типы сущностей, которые создаются в Entity Framework, по умолчанию являются Контрактами на данные. Если бы мне нужно было создать простую модель в конструкторе сущностей, как показано ниже: Тип сущности корзины по умолчанию является 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, теперь вы можете сверять свои услуги по своему усмотрению и отправлять их по сети.

Принятый ответ

Вы могли бы пойти простым путем и использовать ADO.NET Data Services .


Популярные ответы

Я рекомендую вам не возвращать сущности напрямую. К сожалению, Microsoft решила включить специфичные для реализации данные как часть DataContract для сущностей. Это не будет взаимодействовать с другими платформами и может не взаимодействовать даже между версиями .NET.

Вместо этого я рекомендую следовать шаблону Data Transfer Object и просто возвращать классы POCO, которые являются копиями данных в сущностях, без какого-либо поведения. Вы можете вернуть список таких классов для представления таблицы и т. Д.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему