在优秀的 mvvmcross-library 中,我可以使用 RIO 绑定来防止不可读的代码:
public INC<String>Title = new NC<String>();
然后我可以使用 Title.Value 读取和写入值。使模型更具可读性。
通常,这个属性会写成: private string _title;
public string Title
{
get { return _title; }
set
{
_title = value;
RaisePropertyChanged("Title");
}
}
但是当我想使用 sqlite-net 时,这些字段无法流式传输到数据库,因为它们不是带有 getter 和 setter 的基本类型。
我可以想到一些解决方法:
- 创建一个类似于模型的新简单对象,但仅使用直接 db-fields。并在模型上创建一个简单的导入导出静态方法。这也可以防止与永远不需要与实际数据库相关的复杂模型代码作斗争。
- 让 sqlite-net 理解阅读 NC 字段。我阅读了映射器的代码,但看起来这将是很多工作,因为它依赖于 getter-setter。我没有找到将自定义映射插入类型的方法,这可能是通用的。
- 删除 RIO 并自己输入所有代码,而不是依赖 RIO。
也许有人有一些建议?