АДО.Чистая сущность рамках код-только с Ado.Net сведения обслуживания

StackOverflow https://stackoverflow.com/questions/1810685

Вопрос

Я использую предварительную версию Ado.Net и не могу понять, как я использую это с Ado.Net Службой передачи данных.

Код для ObjectContext

 public class TradingContext : ObjectContext
    {
        private static TradingContext _Context;

        public static TradingContext Current
        {
            get 
            {
                if (_Context == null)
                {
                    _Context = BuildContext();
                }
                return _Context;
            }    
        }

        public TradingContext(EntityConnection conn) : base(conn)
        {

        }

        public IObjectSet<Message> Messages
        {
            get { return CreateObjectSet<Message>(); }
        }

        private static TradingContext BuildContext()
        {
            var builder = new ContextBuilder<TradingContext>();
            builder.Entity<Message>().Property(x => x.MessageId).IsIdentity();
            builder.Entity<Message>().Property(x => x.Xml).HasStoreType("xml");

            return builder.Create(new SqlConnection(@"connection string information"));
        }

И код для службы данных Ado.Net

 [System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]   
    public class Trading : DataService<TradingContext>
    {
        // This method is called only once to initialize service-wide policies.
        public static void InitializeService(DataServiceConfiguration config)
        {
            config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
        }
    }

Проблема в том, что Ado.Net Служба данных ожидает конструктор без параметров.И если я предоставлю конструктор, что я напишу в базовый конструктор?

И даже если я укажу базовый конструктор, контекст не будет полным без BuildContext

Что я пропустил, или Entity Framework "только код" не поддерживается Ado.Net Службой передачи данных в этом предварительном выпуске?

Это было полезно?

Решение

Вы можете переопределить защищенный метод:CreateDataSource() в вашем классе dataservice и может возвращать экземпляр ObjectContext.Это включает сценарий, в котором базовый конструктор поставщика (в данном случае EF) принимает набор конструкторов.

Надеюсь, это поможет.

Спасибо Pratik

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top