MobileServiceClient с именем модели, отличным от имени таблицы - PullRequest
0 голосов
/ 06 сентября 2018

Есть ли способ в Xamarin с помощью MobileServiceClient добавить атрибут к имени класса, чтобы иметь другое имя таблицы?

т.е.

this._client = new MobileServiceClient("myurl");
this._blogTable = _client.GetTable<Blog>();

Но таблица на сервере XCHX_Blogs

Мне бы хотелось, чтобы мой класс модели был примерно таким

[TableName("XCHX_Blogs")]
public class Blog {
   ...
}

Мне кажется, я не могу найти способ сделать это отображение в формах Xamarin (в модели).

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Вы можете использовать DataContractAttribute или JsonContainerAttribute или DataTableAttribute

[DataContractAttribute(Name = "tableName")]
public class MyClass { ... }
IMobileServiceTable<MyClass> table = client.GetTable<MyClass>();

или

[JsonObjectAttribute(Title = "tableName")]
public class MyClass { ... }
IMobileServiceTable<MyClass> table = client.GetTable<MyClass>();

или

[DataTableAttribute("tableName")]
public class MyClass { ... }
IMobileServiceTable<MyClass> table = client.GetTable<MyClass>();

Лично я предпочитаю последнее решение, потому что именование связано с типом объектов.

0 голосов
/ 07 сентября 2018

Для того, чтобы выполнить именно то, что вы просите, вам нужно вставить источник SDK Mobile Service Client в ваше приложение (вместо использования Nuget), чтобы вы могли напрямую использовать конструктор internal MobileServiceTable<T>:

this._blogTable = new MobileServiceTable<Blog>("XCHX_Blogs", this._client);

В качестве альтернативы вы можете использовать неуниверсальный MobileServiceTable, но тогда вам придется обрабатывать JSON de / serialization:

this._blogTable = _client.GetTable("XCHX_Blogs");
var blog = new Blog();
await this._blogTable.InsertAsync(JObject.FromObject(blog));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...