标题说. (很明显,SQLite.NET是托管here)所有示例都使用可变记录类型,这意味着它们具有{get;组;在每个属性定义中.我希望在我的项目中尽可能地删除可变类型,但SQLite.NET看起来像是一个可能的障碍.例如,如果我尝试使...
![](https://oss.womengda.net/imgfile/2310/1ER2I5Y35P-22306.jpg)
标题说. (很明显,SQLite.NET是托管here)
所有示例都使用可变记录类型,这意味着它们具有{get;组;在每个属性定义中.我希望在我的项目中尽可能地删除可变类型,但SQLite.NET看起来像是一个可能的障碍.
例如,如果我尝试使用System.String类型的1列获取查询结果,则会失败.
那么是否可以使SQLite.NET使用构造函数而不是属性setter,或者我必须使用可变类型在SQLite.NET中检索和存储数据?
解决方法:
我不能确定你是否可以使SQLLite使用构造函数而不是属性.那就是说,我非常怀疑.
使用属性要容易得多,因为您可以使用反射来查找与列名匹配的相应成员.使用构造函数执行此操作将非常痛苦.在这方面,几乎所有其他ORM的工作方式完全相同.
如果你真的想使用不可变类型,你需要在ORM周围放置一个包装器,它接受填充的对象并返回一个只有不可变属性的不同对象.如果你真的想确保没有人使用可变类型,请将它们设置为内部并将它们放在单独的程序集中.
当然,这只是针对不可变类型的额外工作,但鉴于ORM的性质,它几乎是您唯一的选择.
本文标题为:c# – 是否可以将SQLite.NET与不可变记录类型一起使用?
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
- c# – PowerShell二进制模块程序集依赖性错误 2023-09-19
- C#使用StreamReader和StreamWriter类读写操作文件 2023-06-05
- c# RSA非对称加解密及XML&PEM格式互换方案 2023-03-28
- .NET Core 环境变量详解 2023-09-27
- C#实现读取txt文件生成Word文档 2023-05-16
- C#使用Interlocked实现线程同步 2023-01-06
- UGUI绘制多点连续的平滑曲线 2023-01-06
- 如何使用C#修改本地Windows系统时间 2023-03-29
- c# 使用线程对串口serialPort进行收发数据(四种) 2023-06-22
- C#版Tesseract库的使用技巧 2023-04-15