Domanda

Sto usando la pre-release di Ado.Net e non riesco a capire come lo uso con Ado.Net Data Service.

Il codice per 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 il codice per 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;
        }
    }

Il problema è che Ado.Net Data Service prevede un costruttore senza parametri. E se fornisco un costruttore, cosa scriverò al costruttore di base?

E anche se specifico il costruttore di base il contesto non è completo senza BuildContext

Cosa mi sono perso o non è Entity Framework " solo codice " non supportato con Ado.Net Data Service in questa pre-release?

È stato utile?

Soluzione

Puoi sovrascrivere il metodo protetto: CreateDataSource () sulla tua classe dataservice e puoi restituire l'istanza di ObjectContext. Ciò consente lo scenario in cui il costruttore del provider sottostante (in questo caso EF) accetta un gruppo di costruttori.

Spero che questo aiuti.

Grazie Pratik

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top