KeyedEntity に関して私が見つけた唯一の情報は次のとおりです。
KeyedEntity[K] を拡張するオブジェクト (K は数値型) には、id フィールドに新しく作成された主キー値が割り当てられます (キーを生成するメカニズムは、各 DatabaseAdaptor に固有です)。
キー付きオブジェクトが不変の場合、これはどのように適用されますか? それでは、オブジェクトの id フィールドを新しく作成された主キー値に割り当てることは不可能ではないでしょうか?
オブジェクトのキーを返すために、オブジェクトの KeyedEntity 内の抽象 id メソッドをオーバーライドすることになっていると思います。しかし、Squeryl はデータベースへの書き込み時にどのフィールドをキーとして使用するかをどのように判断するのでしょうか?
問題がある場合は、Squeryl 9.5 を使用しています。これらの問題に関するドキュメントはあまり見つかりません。