PetaPoco の main branch は複合キー(複数の項目で主キーを形成する)に対応していないようだ。

まず、T4 Template による POCO の自動生成を行うと、POCO に PrimaryKey 属性が付加されるが、主キーのうちの最初の項目しか認識されない。そして、PetaPoco.cs 内の各処理も複合キーに対応していないようだ。

したがって、PetaPoco の main branch を使っている場合で、複合キーを持つテーブルに対して Updateメソッドや Delete メソッドを使うと、意図しない結果になってしまう。しょうがなく SQL を実行することになる。

実は、 複合キーに対応した PetaPoco の派生が Github にあがっている。
https://github.com/schotime/petapoco

この branch では、ほかに Version 属性などにも対応しているようだ。

しかし、この branch に付属の T4 Tempalate でも、複合キーに対応していないようなので、自分で T4 Tempalate を書き換える必要がある。
その際は、次のように PrimaryKey 属性にカンマ区切りで主キーの項目名が並ぶようにする。
[TableName("銀行口座M")]
[PrimaryKey("支部コード,地区コード", autoIncrement=false)]
[ExplicitColumns]
public partial class PPRow_銀行口座M : PPDB.Record  
{
	[Column] public string 支部コード { get; set; }
	[Column] public string 地区コード { get; set; }
	[Column] public string 銀行名 { get; set; }
	[Column] public string 銀行支店名 { get; set; }
	[Column] public DateTime? 登録日時 { get; set; }
	[Column] public DateTime? 変更日時 { get; set; }
}

以上。