2009-11-27 134 views
0

使用Ado.Net的预发布,我无法理解如何使用Ado.Net数据服务。只使用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

我有什么遗漏或不实体框架“代码只有”在此预发行与Ado.Net数据服务支持?

回答

1

您可以覆盖dataservice类上的protected方法:CreateDataSource(),并且可以返回ObjectContext的实例。这使得底层提供者构造函数(本例中为EF)带有一堆构造函数的场景成为可能。

希望这会有所帮助。

谢谢 Pratik