ResultColumn
属性が設定された POCO クラスがあり、Single<Entity>()
呼び出しを行うと、結果列がマップされません。その値は常にSQL 列のデフォルトの制約によって生成される必要があるため、列を結果列に設定しました。この列がビジネス レイヤーから挿入または更新されることは望ましくありません。私が言おうとしているのは、私の列の型は単純な SQL データ型であり、関連するエンティティ型ではないということです (ResultColumn
主にそれらで使用されているように)。
コードを見ると、PetaPoco に次の行が表示されます。
// Build column list for automatic select
QueryColumns = ( from c in Columns
where !c.Value.ResultColumn
select c.Key
).ToArray();
結果列が自動選択ステートメントから除外されるのはなぜですか。私が理解しているように、その性質は読み取り専用であるためです。そのため、 selects のみで使用されます。このシナリオは、列が実際に関連エンティティ タイプ (複合型) である場合に見られます。Ok。しかし、そのような別の属性が必要であり、そのような属性ComputedColumnAttribute
は常に選択で返されますが、挿入や更新では使用されません...
では、PetaPoco チームが select から結果列を省略することにしたのはなぜですか?
それでは、結果列をどのように読むべきですか?