كود Ado.Net Entity Framework فقط مع Ado.Net Data Service
-
05-07-2019 - |
سؤال
أستخدم الإصدار المسبق من 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) مجموعة من المُنشئين.
أتمنى أن يساعدك هذا.
شكرا براتيك
لا تنتمي إلى StackOverflow