優れた mvvmcross-library では、RIO バインディングを使用して読み取り不能なコードを防ぐことができます。
public INC<String>Title = new NC<String>();
次に、Title.Value を使用して値を読み書きできます。モデルをより読みやすくします。
通常、このプロパティは次のように記述されます。
public string Title
{
get { return _title; }
set
{
_title = value;
RaisePropertyChanged("Title");
}
}
しかし、sqlite-net を使用したい場合、これらのフィールドはゲッターとセッターを備えた基本型ではないため、データベースにストリーミングできません。
それを回避するためのいくつかのオプションを考えることができます:
- モデルに似た新しい単純なオブジェクトを作成しますが、直接の db フィールドのみを使用します。そして、モデルに単純なインポート/エクスポートの静的メソッドを作成します。これにより、実際のデータベースに関連付ける必要のない複雑なモデル コードとの闘いを防ぐこともできます。
- sqlite-net が NC フィールドの読み取りを理解できるようにします。マッパーのコードを読み込んでみましたが、ゲッターセッターに依存しているので大変な作業になりそうです。ジェネリックである可能性のある型にカスタム マッピングを挿入する方法が見つかりませんでした。
- RIO を削除し、RIO に頼るのではなく、自分ですべてのコードを挿入します。
多分誰かがアドバイスを持っていますか?