标签:c sqlite immutability sqlite-net-2
标题说. (很明显,SQLite.NET是托管here)
所有示例都使用可变记录类型,这意味着它们具有{get;组;在每个属性定义中.我希望在我的项目中尽可能地删除可变类型,但SQLite.NET看起来像是一个可能的障碍.
例如,如果我尝试使用System.String类型的1列获取查询结果,则会失败.
那么是否可以使SQLite.NET使用构造函数而不是属性setter,或者我必须使用可变类型在SQLite.NET中检索和存储数据?
解决方法:
我不能确定你是否可以使SQLLite使用构造函数而不是属性.那就是说,我非常怀疑.
使用属性要容易得多,因为您可以使用反射来查找与列名匹配的相应成员.使用构造函数执行此操作将非常痛苦.在这方面,几乎所有其他ORM的工作方式完全相同.
如果你真的想使用不可变类型,你需要在ORM周围放置一个包装器,它接受填充的对象并返回一个只有不可变属性的不同对象.如果你真的想确保没有人使用可变类型,请将它们设置为内部并将它们放在单独的程序集中.
当然,这只是针对不可变类型的额外工作,但鉴于ORM的性质,它几乎是您唯一的选择.
标签:c,sqlite,immutability,sqlite-net-2 来源: https://codeday.me/bug/20190519/1138348.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。