0

Si j'utilise la pré-version d'Ado.Net et que je ne comprends pas comment je l'utilise avec Ado.Net Data Service.Code de structure d'entité Ado.Net uniquement avec le service de données Ado.Net

Le code pour le 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")); 
     } 

Et le code pour 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; 
     } 
    } 

Le problème est que Ado.Net Data Service attendent un constructeur sans paramètres. Et si je fournis un constructeur, que vais-je écrire au constructeur de base?

Et même si je spécifie le constructeur de base, le contexte n'est pas complet sans BuildContext

Qu'est-ce que j'oublié ou pas Entity Framework « code ne » pas pris en charge avec Ado.Net Service de données dans cette version pré ?

Répondre

1

Vous pouvez remplacer la méthode protégée: CreateDataSource() sur votre classe serviceervice et pouvez renvoyer l'instance de ObjectContext. Cela permet au scénario où le constructeur fournisseur sous-jacent (dans ce cas EF) prend un groupe de constructeurs.

Espérons que cela aide.

Merci Pratik