ADO.NET Entity Framework 코드 전용 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없이 컨텍스트가 완료되지 않습니다.
이 사전 릴리스에서 ADO.NET 데이터 서비스로 지원되지 않는 엔티티 프레임 워크 "코드 만 놓치지 않거나 엔티티 프레임 워크가없는 것은 무엇입니까?
해결책
DataService 클래스에서 Protected Method : CreatatAsource ()를 무시하고 ObjectContext의 인스턴스를 반환 할 수 있습니다. 이를 통해 기본 제공 업체 생성자 (이 경우 EF)가 수많은 생성자를 취하는 시나리오가 가능합니다.
도움이 되었기를 바랍니다.
감사합니다 Pratik
제휴하지 않습니다 StackOverflow