如何在LINQPad中插入带有地理列的行?

时间:2017-02-16 00:18:28

标签: sql-server linq-to-sql linqpad

如何使用LINQPad将行插入包含地理列的SQL Server表?

我有这张桌子:

CREATE TABLE [dbo].[School](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](100) NOT NULL,
    [Geometry] [geography] NOT NULL,
    [Gender] [nchar](1) NOT NULL,
    [SchoolType] [int] NOT NULL,
    [AgeGroups] [int] NOT NULL,
 CONSTRAINT [PK_School] PRIMARY KEY CLUSTERED ([Id] ASC)

我正在使用 LINQPad 5 来填充表格,但是在调用Schools.Context.SubmitChanges()时我收到以下异常:

Cannot insert the value NULL into column 'Geometry', table 'TestDb.dbo.School'; column does not allow nulls. INSERT fails.
The statement has been terminated.

生成的SQL是:

-- Region Parameters
DECLARE @p0 NVarChar(1000) = 'Te Kao School'
DECLARE @p1 NChar(1) = 'C'
DECLARE @p2 Int = 1
DECLARE @p3 Int = 1
-- EndRegion
INSERT INTO [School]([Name], [Gender], [SchoolType], [AgeGroups])
VALUES (@p0, @p1, @p2, @p3)

SELECT CONVERT(Int,SCOPE_IDENTITY()) AS [value]

我想要插入的行没有空值。这就是它的样子:

School
LINQPad.User.School 
Id: 0 
Name: "Temp School "
Geometry: SqlGeography: POINT (172.965771 -34.656533) 
Gender: C 
SchoolType: 1 
AgeGroups: 1 

我插入行的代码如下所示:

Schools.InsertAllOnSubmit(schoolRecords);
Schools.Context.SubmitChanges();

0 个答案:

没有答案