#c# #entity-framework #azure #azure-mobile-services
#c# #entity-framework #azure #azure-mobile-services
Вопрос:
Я новичок в мобильных службах Azure и Entity Framework. Итак, мои извинения, если это вопрос для новичков… но я потратил несколько часов на размышления об этом, не придя к хорошему выводу.
Я хочу сохранить некоторые данные о местоположении в DbGeography
классе в моей базе данных SQL. Я создал код, используя миграцию code-first в C #. Ниже приведен весь класс
public class Place : EntityData
{
public string Id { get; set; }
public string Name{ get; set; }
public DbGeography Coordinates{ get; set; }
}
Таким образом, код на стороне сервера завершен вместе со «стандартным» контроллером.
Тем не менее, он передает мои данные о местоположении этому DbGeography
объекту, с которым я борюсь. Это мой текущий класс на стороне клиента:
public class Place
{
public string Id { get; set; }
[JsonProperty(PropertyName = "text")]
public string Name { get; set; }
[JsonProperty(PropertyName = "location")]
public string Coordinates { get; set; }
}
Для меня не имело бы смысла использовать DbGeography
объект на стороне клиента … поскольку он не взаимодействует с базой данных. Поэтому я хотел бы либо использовать сложный тип, такой как Point
, либо примитивный, такой как string
, а затем «преобразовать» эту информацию на стороне сервера. Вероятно, в контроллере.
Мой вопрос в том, как мне это сделать? Или мой мыслительный процесс совершенно неправильный с точки зрения того, как я использую мобильные службы Azure?
Спасибо.
Дэнни
Комментарии:
1. Я бы использовал точно такую же структуру данных в клиенте, как у вас в базе данных и мобильной службе. По крайней мере, с приложениями WP8 жизнь становится намного проще, если вы это сделаете, некоторые методы требуют этого, если вы хотите читать / записывать данные из мобильной службы.
2. Не кажется ли вам, что импорт DLL EntityFramework немного ОТТ для этого типа? Кажется странным использовать типы БД на стороне клиента…
3. Ну, один из вариантов — отбросить
DbGeography
и сохранить только те элементы, которые вам нужны. Например, долгота и широта какdouble
. Я столкнулся с большими проблемами, когда попытался использовать данные через мобильную службу, когда класс клиента не соответствовал таблицам БД.4. В конце концов я обнаружил, что в конечном итоге было проще переключиться на node.js серверная часть. Это значительно упростило обработку запроса и ввод его в БД в качестве dbgeography. Есть даже учебное пособие: code.msdn.microsoft.com/windowsapps /…