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 に答える