【发布时间】:2019-04-10 04:19:03
【问题描述】:
我正在使用一个名为 LanguageExt 的库。该库提供了一些工具来处理 C# 代码中的函数式编程。我还使用 FluentNHibernate 将我的域类映射到我的数据库。
当一个属性可以为空时,我想使用来自 LanguageExt 的Option<T>。它是一个结构体,要么持有一个值,要么等于一个 None。
我的一个类模型,比如Car 有一个可选属性,比如Sunroof,它的类型是Option<Window>。像这样:
public class Car
{
Window _sunroof;
Option<Window> Sunroof
{
get => Optional(_sunroof);
set => _sunroof = value.IfNoneUnsafe(() => null);
}
}
我的映射是这样的:
References<Window>(x => x.Sunroof, "idSunroof")
.Not.Nullable();
我的问题是:我如何使用其支持字段映射 Sunroof 属性,知道它们不共享相同的返回类型?
【问题讨论】:
-
我对 NHibernate 不熟悉。实体框架具有称为实体的 DTO,它们有助于弥合数据库中的数据结构与业务模型中的数据结构之间的差距。 NHibernate 有这样的东西吗?
-
是的,实际上 Car 类就是这样。它是一个域模型,但也通过 FluentNHibernate 完成的映射配置映射到数据库中的某个表。
标签: c# nhibernate fluent-nhibernate language-ext