我正在尝试通过F#typeprovider datacontext插入数据。我在数据库dbo.tbl_Location
中有一个表,想要使用以下简单查询插入数据。
let InsertTaskDetails() =
dbSchema.GetDataContext().DataContext.ExecuteCommand("Insert into dbo.tbl_Location (LocationId,Location) Values (11, 'india')")
dbSchema.GetDataContext().DataContext.SubmitChanges()
但我收到错误:
','
附近的语法不正确
我无法理解在SQL Server 2008中运行相同查询时发生了什么
Insert into dbo.tbl_Location (LocationId,Location) Values (11, 'india')
工作正常。 LocationId
属于int
类型,Location
属于string
类型。
如果有人对此有所了解,请告诉我我错过了哪些内容。
答案 0 :(得分:0)
ExecuteCommand
,则无法传入T-SQL,因为实体框架DataContext只能理解Entity SQL。
此外,当您直接执行类似命令时,无需调用SubmitChanges
- 这是一件好事,因为您在另一个实例上调用SubmitChanges
数据上下文比您调用ExecuteCommand
。 GetDataContext
每次调用它时都会创建一个实例。如果您想插入惯用的Entity Framework Type Provider Way,它看起来更像是:
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