通过修改,我指的是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")
...
答案 0 :(得分: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的新手,所以我可能会误导你。我虽然为我工作。
现在,唯一缺少的部分是添加一些不错的包装器,因此可以直接按照记录进行删除和更新。