Ado.Net Entity Code-único quadro com Ado.Net Data Service
-
05-07-2019 - |
Pergunta
Im usando a versão pre de Ado.Net e não consegue entender como eu uso isso com Ado.Net serviço de dados.
O código para o 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"));
}
E o código para 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;
}
}
O problema é que Ado.Net Data Service esperar um construtor sem parâmetros. E se eu fornecer um construtor que vou escrever para o construtor base?
E mesmo se eu especificar o construtor base o contexto não é completa sem BuildContext
O que eu perdi ou não é Entity Framework "código único" não suportado com Ado.Net Data Service nesta pré lançamento?
Solução
Você pode substituir o método protegido: CreateDataSource () em sua classe DataService, e pode retornar a instância do ObjectContext. Isso permite que o cenário em que o construtor provedor subjacente (neste caso EF) tem um monte de construtores.
Espero que isso ajude.
Graças Pratik