0

我使用的是 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 数据服务不支持我错过了什么或不支持实体框架“仅代码”?

4

1 回答 1

1

您可以覆盖受保护的方法:数据服务类上的 CreateDataSource(),并且可以返回 ObjectContext 的实例。这启用了底层提供程序构造函数(在本例中为 EF)采用一堆构造函数的场景。

希望这可以帮助。

谢谢普拉蒂克

于 2009-11-30T18:04:15.453 回答