В Entity Framework у меня есть объект DBGeography:
using System.Data.Entity.Spatial;
...
public DbGeography Location { get; set; }
Поскольку я не нашел лучшего способа отправить объект POINT
через JSON, я собираюсь отправить строковые значения «lat» и «lng» из моего кода Javascript и использовать их на сервере во время метода POST:
public async Task<IHttpActionResult> PostI4Item(myEntity item)
{
var lat = (VALUE TO BE SOURCED);
var lng = (VALUE TO BE SOURCED);
string Point = String.Format("POINT({0} {1})", lat, lng);
item.Location = DbGeography.PointFromText(Point, 4326);
myEntity current = await InsertAsync(item);
return CreatedAtRoute("Tables", new { id = current.Id }, current);
}
Проблема в том, что я не знаю, как получить значения, отправленные в POST, которые не ожидаются в модели данных. item.Location
доступен, потому что он был объявлен. Но даже если я отправляю дополнительные пары ключ/значение в теле 'lat' и 'lng', как я могу обнаружить эти значения в коде? Я не могу использовать item.lat
и item.lng
, поскольку они не объявлены, и мне не нужны дополнительные столбцы БД для этих значений... Я только хочу, чтобы они принимались в качестве входных данных, но не сохранялись.
Есть ли в модели данных метод, в котором я могу объявить значение (возможно, что-то доступное только для чтения или внутреннее), которое ожидается по запросу и доступно для использования в методе POST, но на самом деле не сохраняется в моей базе данных?