3

修改是指 SQL UPDATE 和 DELETE 的对应项。

在这两种情况下,我都有一个对象记录,我想在数据库中删除它。该表始终具有主键,并且在我的对象记录中设置。

请注意,我没有“创建”该对象记录的查询或其他来源,我所拥有的只是它和表格。所以总的来说它看起来像这样:

fetch the Record from Table
...
// forget how I get the Record
...
Record.person_name = "joe"
? update Record ?

怎么做?


我定义记录和表格如下:

case class Topic(var id : Long,
                 var sectionId : Int,
                 ...

object TopicTable  extends Table[Topic]("Topic") {
       def id = column[Long]("top_Id", O.PrimaryKey) 
       def sectionId = column[Int]("sect_Id")
       ...
4

1 回答 1

4

似乎没有直接的方法,所以你必须显式创建一个记录集才能修改(为了比较——我知道 SQ 不是 ORM——在 EF 中你获取记录,修改它们,此时你的数据上下文“知道“他们被修改了,所以你所要做的就是提交更改)。

所以首先你创建你喜欢的 RS:

val rs = for (rec <- MyTable if rec.id===10) yield rec;

和删除记录:

rs.mutate(rec => rec.delete())

更新:

rs.update(new MyRecord(...))

或(八卦是,它更快;-))

rs.mutate(rec => rec.row = new MyRecord(...))

请注意,我是 SQ 的新手,所以我可能会误导你。不过我为我工作。

现在,唯一缺少的部分是添加一些漂亮的包装器,因此可以直接对每条记录进行删除和更新。

于 2011-11-29T16:22:58.590 回答