私はJobsControllerという名前のODataコントローラを持っています。 このコントローラは、私が私にCONTEXTID(データベース識別子)を送信するためにクライアントが必要クエリを行うために仕事の実体OData Controllerに余分な識別子を渡す方法
public class Job
{
int Id {get;set;}
int Name {get;set;}
...
}
を表します。 contextIdをチェックすることにより、正しいデータベースが初期化されます。
私はこのような何か問い合わせることがしたい[HttpGet]
[ODataRoute("Jobs")]
[EnableQuery]
public IHttpActionResult Get()
{
var unitOfWork = UnitOfWorkFactory.Create(contextId);
if (unitOfWork == null)
return InternalServerError(new Exception("Unit of work not found"));
return Ok(unitOfWork.Jobs.GetAll());
}
::http://localhost:38483/odata/Jobs(「localDbを」)が、 もちろん、CONTEXTIDは...私は私のコントローラは、そのようになります。希望
仕事モデルの一部ではありませんそれはあなただけのセットアップ、まず、これは2つの異なるデータベースに接続することができますつのサービスが混乱思える持つ、これを処理するための非常に奇妙な方法のように思える
あるいはhttp://localhost:38483/odata/Jobs/localDb
答えてくれてありがとうTom。 これはこれを扱う奇妙な方法であり、2つの異なるエンドポイントに分割するようアドバイスしました。 私は(GETリクエストなどのために)ヘッダーを変更し、単純なアクションを追加することでODataを使用する目的を失うと思います – kaycee