سؤال

أستخدم الإصدار المسبق من Ado.Net ولا أستطيع فهم كيفية استخدامه مع Ado.Net Data Service.

الكود الخاص بـ 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 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;
        }
    }

المشكلة هي أن Ado.Net Data Service تتوقع مُنشئًا بدون معلمات.وإذا قمت بتوفير منشئ ماذا سأكتب إلى المنشئ الأساسي؟

وحتى إذا قمت بتحديد المُنشئ الأساسي، فلن يكتمل السياق بدون BuildContext

ما الذي فاتني أو لم يكن "الكود فقط" لـ Entity Framework غير مدعوم مع Ado.Net Data Service في هذا الإصدار المسبق؟

هل كانت مفيدة؟

المحلول

يمكنك تجاوز الطريقة المحمية:CreateDataSource() في فئة خدمة البيانات الخاصة بك، ويمكنه إرجاع مثيل ObjectContext.يؤدي ذلك إلى تمكين السيناريو الذي يأخذ فيه مُنشئ الموفر الأساسي (في هذه الحالة EF) مجموعة من المُنشئين.

أتمنى أن يساعدك هذا.

شكرا براتيك

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top