0

我安装了最新的 dotConnect for PostgreSQL。我试图在 Postgres 数据库中插入一条记录。我有一个几何列,这给了我错误。这是代码:

using (var context = new WKP_DBEntities())
 {
    var Location = DbGeometry.PointFromText(string.Format("POINT({0} {1})", 157873, 364282), 28992);

    var record = new monitoring_object()
    {
        geometry = Location,
        last_changed_by = "ssg",
    };

    context.monitoring_object.Add(record);
    context.SaveChanges();
}

这是错误消息:

System.Data.Entity.Infrastructure.DbUpdateException was unhandled
  HResult=-2146233087
  Message=An error occurred while updating the entries. See the inner exception for details.
  Source=EntityFramework
  StackTrace:
       at System.Data.Entity.Internal.InternalContext.SaveChanges()
       at System.Data.Entity.Internal.LazyInternalContext.SaveChanges()
       at System.Data.Entity.DbContext.SaveChanges()
       at ConsoleApplicationGEOdata.Program.Main(String[] args) in c:\Users\Stefan\Documents\Visual Studio 2012\Projects\ConsoleApplicationGEOdata\ConsoleApplicationGEOdata\Program.cs:line 38
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.Data.UpdateException
       HResult=-2146233087
       Message=An error occurred while updating the entries. See the inner exception for details.
       Source=System.Data.Entity
       StackTrace:
            at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
            at System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
            at System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options)
            at System.Data.Entity.Internal.InternalContext.SaveChanges()
       InnerException: System.ArgumentException
            HResult=-2147024809
            Message=Cannot convert value
            Source=Devart.Data.PostgreSql
            StackTrace:
                 at Devart.Data.PostgreSql.af.a(Object A_0, Type A_1, Encoding A_2)
                 at Devart.Data.PostgreSql.af.a(String A_0, Encoding A_1, PgSqlType A_2, Object A_3, Int32 A_4, Boolean A_5)
                 at Devart.Data.PostgreSql.PgSqlCommand.a(String A_0, Encoding A_1, ArrayList A_2, Boolean A_3)
                 at Devart.Data.PostgreSql.PgSqlCommand.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords)
                 at Devart.Common.DbCommandBase.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
                 at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
                 at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior)
                 at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
                 at Devart.Data.PostgreSql.Entity.y.a(CommandBehavior A_0)
                 at Devart.Common.Entity.i.b(CommandBehavior A_0)
                 at Devart.Data.PostgreSql.Entity.y.b(CommandBehavior A_0)
                 at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
                 at System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator translator, EntityConnection connection, Dictionary`2 identifierValues, List`1 generatedValues)
                 at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
            InnerException:

我究竟做错了什么?

4

1 回答 1

1
于 2013-07-29T13:29:19.817 回答