Я создаю приложение с использованием платформы DotNetNuke 7 и пытаюсь записать данные географии в базу данных. Вот некоторые сведения о проекте. Я строю VS VS 2012 и только что обновлен до Server 2012 с 2008 R2. DotNetNuke 7 реализует PetaPoco для уровня данных и WebAPI.Нет сопоставления из типа объекта System.Data.Spatial.DbGoography для известного управляемого типа управляемого провайдера
Надеюсь, что я предоставил информацию, чтобы понять проблему. Мой код не работает в строке «rep.Insert (location)»;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net;
using System.Web;
using System.Net.Http;
using System.Web.Http;
using System.Data.Spatial;
using DotNetNuke.Web.Api;
using DotNetNuke.Data;
namespace DotNetNuke.Modules.GeoLocations
{
public class LocationController: DnnApiController
{
[AllowAnonymous]
[HttpPost]
[ValidateAntiForgeryToken]
public HttpResponseMessage addLocation(CP_Location submitted)
{
submitted.GeoCode = DbGeography.PointFromText(string.Format("POINT({0} {1})", submitted.Long, submitted.Lat), 4326);
createLocation(submitted);
return Request.CreateResponse(HttpStatusCode.OK, "Success");
}
//------------------------------CRUD------------------------------//
public void createLocation(CP_Location location)
{
using (IDataContext ctx = DataContext.Instance())
{
var rep = ctx.GetRepository<CP_Location>();
rep.Insert(location);
}
}
}
}
Вот мой объект
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Spatial;
using System.Data.Entity;
using DotNetNuke.ComponentModel.DataAnnotations;
using DotNetNuke.Data;
using DotNetNuke.Data.PetaPoco;
namespace DotNetNuke.Modules.GeoLocations
{
[TableName("CP_Locations")]
[PrimaryKey("LocationId", AutoIncrement = true)]
public class CP_Location
{
public int LocationId { get; set; }
public string LocationType { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public float Long { get; set; }
public float Lat { get; set; }
public DbGeography GeoCode { get; set; }
}
}
Я проходящий в Лонге и Шире со стороны клиента из карты Google который получает COORDS от мыши нажмите
В моей базе данных, если Я должен был непосредственно написать вставку или обновление, используя следующее, это сработает.
geography:: STGeomFromText('POINT(-121.527200 45.712113)' , 4326);
В чем может быть причина?
- хотя я бы включил снимок экрана объекта
Не могли бы вы предоставить полную информацию об исключениях (включая трассировку стека), возвращаемый методом его ToString()? –