2013-12-02 3 views
0

Я пытаюсь создать проект библиотеки, который поможет мне в моих других проектах с помощью некоторых методов расширения. Тип, который будет расширен, - DbContext. Вот пример:Entity Framework + WCF DataServices + методы расширения

public bool Insert<TEntity>(this DbContext Context, TEntity entity) where TEntity : class 
    { 
     if (Context.Entry(entity).State == EntityState.Detached) //Entity is detached 
     { 
      Context.Set<TEntity>().Add(entity); 
     } 
     else //Entity is attached 
     { 
      Context.Entry(entity).State = EntityState.Added; 
     } 

     var str = Context.GetValidationErrors(); 

     if (Context.GetValidationErrors().Any()) return false; 

     Context.SaveChanges(); 
     return true; 

    } 

Где находится проблема?

Я разоблачаю контекст через службы данных WCF, и он сокращает мои возможности контекста, что для меня противоречиво, поскольку цель здесь заключается в том, чтобы разоблачать данные, как вы можете раскрывать данные без значения, чтобы достичь этого? Итак, как я могу выполнить эту задачу, выставляя мои методы ввода в качестве методов расширений для операций со средой клиентской стороны.

EDIT

Я читал Arround и нашел этот ответ от Ладислава Mrnka

Implement WCF Data Service using the Repository Pattern

+0

Вы хотите сказать, что при попытке вставить объект через вашу службу данных WCF этот метод расширения не вызван? – CodeCaster

+0

Точно ... Другие методы тоже не отображаются –

ответ

1

DbContext API отличается от API сгенерированного контекста, когда вы добавляете ссылку на службу данных , Более того, возможности сгенерированного контекста ограничены по сравнению с DbContext. Контекст на стороне клиента является помощником для создания запросов OData, и это не идеально. Я не думаю, что вы могли бы переносить каждый метод расширения без повторной реализации (если это вообще возможно).

+0

Я понимаю, но это противоречиво, поскольку главная цель - предоставить данные с сервера на клиентскую сторону. –

+0

Это ужасно = [ –

+0

Можете ли вы представить себе обходное решение? У меня есть отличные методы для использования с контекстом, который я должен буду делать с WCF Service вместо служб WCF Data Services. Но одна из причин, по которой я выбираю услуги передачи данных по сервису wcf, - это простой способ работы с графиками отключенных сущностей. –

Смежные вопросы