Azure Mobie App SDKを使用し、ODataクエリをサポートするバックエンドサービスをアップグレードしました。私は郵便配達員を使って依頼し、希望の返答を受け取ります。それは正常に動作しています。 Azure Mobile App SDKを使用するようにクライアントをアップグレードします。私が直面している問題は、クライアントSDKが生成されたURLにテーブルのハードコードされたを使用していることです。このコード:私は何とかtables
一部を変更することはできhttp://{{host}}/api/local/sites?$filter=(updatedAt%20ge...
クライアントでAzure Mobile AppサービスのURLを変更する
をGET
:
class SiteRepository
{
private MobileServiceClient client;
private IMobileServiceSyncTable<Site> siteTable;
private SiteRepository()
{
client = new MobileServiceClient("http://{{host}}/");
Task.Run(() => InitLocalStoreAsync());
siteTable = client.GetSyncTable<Site>();
siteTable.PullAsync("Site", siteTable.CreateQuery());
}
private async Task InitLocalStoreAsync()
{
if (!client.SyncContext.IsInitialized)
{
var store = new MobileServiceSQLiteStore("localstore.db");
store.DefineTable<Site>();
await client.SyncContext.InitializeAsync(store);
}
}
public List<Site> GetSites()
{
return Task.Run(() => siteTable.ToListAsync()).Result;
}
はに要求を送信します。
http://{{host}}/tables/site$filter=(updatedAt%20ge ...
をGETしかし、私はそれがリクエストを送信します何かに?
更新は:要求は常に/テーブルのエンドポイントを使用し、IMobileServiceTableとIMobileServiceSyncTableで
[RoutePrefix("api/local/sites")]
[MobileAppController]
public class SiteController<T> : TableController<T> where T : Model.Entity
{
protected SiteService<T> service;
public BaseController(IEntityService<T> _service)
{
service = _service;
}
[Route("")]
[HttpGet]
[EnableQuery]
public virtual IQueryable<T> Get()
{
var entities = service.GetAll();
if (entities == null || entities.Count() == 0)
{
return null;
}
return TableUtils.ApplyDeletedFilter(entities.AsQueryable(), Request.AreDeletedRowsRequested());
}
カスタムAPIからコードを追加できますか? (おそらくSitesController) – SWilko
SiteControllerコードを追加しましたが、問題とは関係ないと思います。 –
'RoutePrefix'を' TableController'に追加して、それを行うために 'ApiController'から継承しなければならないと思っていませんでした。それで、あなたは手作りでオダタの良さを作り出さなければなりません。私は確信していません – SWilko