gpt4 book ai didi

c# - 是否可以将 SQLite.NET 与不可变记录类型一起使用?

转载 作者:IT王子 更新时间:2023-10-29 06:28:40 32 4
gpt4 key购买 nike

标题说明了一切。 (需要说明的是,SQLite.NET 托管于 here )

所有示例都使用可变记录类型,这意味着它们有 { get;放; } 在每个属性定义中。我想在我的项目中尽可能摆脱可变类型,但 SQLite.NET 看起来可能是一个障碍。

例如,如果我尝试使用 System.String 类型的 1 列获取查询结果,它会失败。那么是否可以让 SQLite.NET 使用构造函数而不是属性 setter ,或者我必须使用可变类型在 SQLite.NET 中检索和存储数据?

最佳答案

我不能确定您是否可以让 SQLLite 使用构造函数而不是属性。也就是说,我非常怀疑。

使用属性容易得多,因为您可以使用反射来查找与列名匹配的适当成员。使用构造函数执行此操作将极度痛苦。在这一点上,几乎所有其他 ORM 的工作方式都完全相同。

如果你真的想使用不可变类型,你需要在 ORM 周围放置一个包装器,它接受填充的对象并返回一个不同的对象,该对象只有不可变的属性。如果您真的想确保没有人使用可变类型,请将它们设为内部并将它们放在一个单独的程序集中。

诚然,这只是针对不可变类型的大量额外工作,但考虑到 ORM 的性质,这几乎是您唯一的选择。

关于c# - 是否可以将 SQLite.NET 与不可变记录类型一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27890099/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com