靠近';的语法不正确';在F#typeprovider中插入带有datacontext的查询
我试图通过F#typeprovider datacontext插入数据。我在数据库靠近';的语法不正确';在F#typeprovider中插入带有datacontext的查询,f#,f#-3.0,F#,F# 3.0,我试图通过F#typeprovider datacontext插入数据。我在数据库dbo.tbl\u Location中有一个表,希望通过以下简单查询插入数据 let InsertTaskDetails() = dbSchema.GetDataContext().DataContext.ExecuteCommand("Insert into dbo.tbl_Location (LocationId,Location) Values (11, 'india')") dbSchema.Get
dbo.tbl\u Location
中有一个表,希望通过以下简单查询插入数据
let InsertTaskDetails() =
dbSchema.GetDataContext().DataContext.ExecuteCommand("Insert into dbo.tbl_Location (LocationId,Location) Values (11, 'india')")
dbSchema.GetDataContext().DataContext.SubmitChanges()
但我得到了一个错误:
“,”附近的语法不正确
我无法理解在SQLServer2008中运行相同查询时发生了什么
Insert into dbo.tbl_Location (LocationId,Location) Values (11, 'india')
它很好用<代码>位置ID为int
类型,位置
为字符串
类型
如果有人对此有想法,请告诉我我在哪里错过了这些东西。克雷格是对的。如果在实体框架DataContext上调用
ExecuteCommand
,则无法传入t-SQL,因为实体框架DataContext只理解
另外,当您直接执行像这样的命令时,不需要调用SubmitChanges
——这是一件好事,因为您在数据上下文的不同实例上调用SubmitChanges
,而不是调用ExecuteCommand
GetDataContext
每次调用时都会创建一个实例。如果您想以插入惯用实体框架类型提供程序的方式执行插入操作,它看起来更像这样:
type tbl_Location = dbSchema.ServiceTypes.tbl_Location
let insertTaskDetails () =
use db = dbSchema.GetDataContext() // it's disposable!
db.tbl_Locations.AddObject(tbl_Location(LocationId=11, Location="india"))
db.DataContext.SaveChanges() |> ignore
呃,你用的是哪种数据上下文??如果是EF,它就不理解SQL。