在业余时间,我正在努力重新学习F#。我是这样做的,试图创建一个简单的应用程序,让我分析我的财务交易。 由于持久性步骤,我第一次尝试创建此应用程序失败。我使用了SQL和EntityFramework包,但是后者生成了数据库实体,我不想在整个应用程序中使用它,因为它们都是可变的(我认为......)。相反,我必须将这些数据库实体映射到域实体。很多手动胶水代码后来它工作....直到我发现一个错误,并被迫取代大部分胶水代码。那是让我退出的转折点。
On SO我发现了一个描述我情况的问题,例如: Saving F# types to a database。 Mark Seeman建议,如果我不使用对象进行持久化,可以克服映射的痛苦。在工作中我最近被介绍到MongoDb,这至少使我免于从数据库实体映射到域实体的痛苦。这些实体都需要一些ID,我选择使用Mongo的ObjectId。哎呀,有似曾相识,为了不让我的域实体依赖Mongo,我将再次创建数据库和域实体....以及映射。 Bah&啊。
在C#中,我习惯使用Automapper这样的工具进行映射,但它们并不适用于特殊的F#类型。所以现在我想知道马克·西曼(Mark Seeman)在“使用物体持续存在”这个问题。这在F#中是如何解决的?到目前为止,除了上述关于SO的问题之外,我还没有能够对这个主题提供更多信息。