私の WCF Data Service は、そこからデータを取得するときにうまく機能します。新しいデータを挿入しようとすると、次の例外が発生します。
ConnectionString プロパティが初期化されていません
私が変更した唯一のことは、接続文字列名を使用するように指示する部分クラスを使用することです。
public MyExtEntities(string connectionString) : base(connectionString) { ... } : base(connectionString) { ... }
そして、私は を上書きしたCreateDataSource
ので、常に適切なコンテキストを持っています:
protected override MyExtEntities CreateDataSource()
{
MyExtEntities entities = null;
try
{
entities = new MyExtEntities ("name=MyExtEntities");
...
return entities;
ご想像のとおり、構成ファイルにはそのキーが含まれています。
add name="MyExtEntities " connectionString="metadata=res://*...
スタックは、コア システムが実行されていることを示しています。私の方法からは何もありません。
System.Data.EntityClient.EntityConnection.Open()
で: System.Data.Objects.ObjectContext.EnsureConnection()
で: System.Data.Objects.ObjectContext.SaveChanges(SaveOptions オプション)
で: System.Data.Entity.Internal.InternalContext .SaveChanges()
at: System.Data.Entity.Internal.LazyInternalContext.SaveChanges()
at: System.Data.Entity.DbContext.SaveChanges()
at: lambda_method(Closure , Object )
at: System.Data.Services.Providers. DbContextHelper.<>c_ DisplayClass4.b _0 ()
で: System.Data.Services.Providers.ObjectContextServiceProvider.SaveContextChanges()
で: System.Data.Services.Providers.ObjectContextServiceProvider.SaveChanges()
で: System.Data.Services.Providers.EntityFrameworkDataServiceProvider.SaveChanges()
で: System.Data.Services.DataService1.HandleNonBatchRequest(RequestDescription description) <br> at: System.Data.Services.DataService
1.HandleRequest()
私はすでにこれをに追加しましたOnStartProcessingRequest
:
protected override void OnStartProcessingRequest(ProcessRequestArgs args)
{
if (this.CurrentDataSource == null)
this.CreateDataSource();
base.OnStartProcessingRequest(args);
}
フェッチが機能し、同じ接続を使用するのは本当に奇妙です...何を確認すればよいですか?