作者:mobiledu2502868933 | 来源:互联网 | 2023-05-27 12:51
标题说.(很明显,SQLite.NET 在这里托管)
所有示例都使用可变记录类型,这意味着它们{ get; set; }
在每个属性定义中都有.我希望在我的项目中尽可能地删除可变类型,但SQLite.NET看起来像是一个可能的障碍.
例如,如果我尝试使用1列类型获取查询结果System.String
,则会失败.那么是否可以使SQLite.NET使用构造函数而不是属性setter,或者我必须使用可变类型在SQLite.NET中检索和存储数据?
1> BradleyDotNE..:
我不能确定你是否可以使SQLLite使用构造函数而不是属性.那就是说,我非常怀疑.
使用属性要容易得多,因为您可以使用反射来查找与列名匹配的相应成员.使用构造函数执行此操作将非常痛苦.在这方面,几乎所有其他ORM的工作方式完全相同.
如果你真的想使用不可变类型,你需要在ORM周围放置一个包装器,它接受填充的对象并返回一个只有不可变属性的不同对象.如果你真的想确保没有人使用可变类型,那么制作它们internal
并将它们放在一个单独的程序集中.
当然,这只是针对不可变类型的额外工作,但鉴于ORM的性质,它几乎是您唯一的选择.