Pergunta

Im usando a versão pre de Ado.Net e não consegue entender como eu uso isso com Ado.Net serviço de dados.

O código para o 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"));
        }

E o código para Ado.Net Data Service

 [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;
        }
    }

O problema é que Ado.Net Data Service esperar um construtor sem parâmetros. E se eu fornecer um construtor que vou escrever para o construtor base?

E mesmo se eu especificar o construtor base o contexto não é completa sem BuildContext

O que eu perdi ou não é Entity Framework "código único" não suportado com Ado.Net Data Service nesta pré lançamento?

Foi útil?

Solução

Você pode substituir o método protegido: CreateDataSource () em sua classe DataService, e pode retornar a instância do ObjectContext. Isso permite que o cenário em que o construtor provedor subjacente (neste caso EF) tem um monte de construtores.

Espero que isso ajude.

Graças Pratik

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top