在实体框架中,我有一个 DBGeography 对象:
using System.Data.Entity.Spatial;
...
public DbGeography Location { get; set; }
由于我还没有发现通过 JSON 发送POINT
对象的更好方法,我打算从我的 Javascript 代码中发送“lat”和“lng”字符串值,并在 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
因为它们没有被声明,而且我不希望这些值有额外的 DB 列......我只希望它们被接受为输入,但不被保存。
数据模型中是否有一种方法可以在其中声明一个值(可能是只读的或内部的),该值是请求所期望的并可在 POST 方法中使用,但实际上并未保存到我的数据库中?