АДО.Чистая сущность рамках код-только с Ado.Net сведения обслуживания
-
05-07-2019 - |
Вопрос
Я использую предварительную версию 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
Что я пропустил, или Entity Framework "только код" не поддерживается Ado.Net Службой передачи данных в этом предварительном выпуске?
Решение
Вы можете переопределить защищенный метод:CreateDataSource() в вашем классе dataservice и может возвращать экземпляр ObjectContext.Это включает сценарий, в котором базовый конструктор поставщика (в данном случае EF) принимает набор конструкторов.
Надеюсь, это поможет.
Спасибо Pratik