我决定用 F# 连同 MVC4 和 Nhibernate 一起承担一个相对较大的项目。
现在,在 C# 中,我通常使用 ORM 的做法是为某些属性(例如自动递增/身份属性、时间戳等)设置私有设置器。IE
public class Guide
{
public int Id { get; private set; }
public DateTime Created { get; private set; }
public Guide()
{
Created = DateTime.Now;
}
}
这里 id 是一个“身份列”,ORM 将处理设置它的值。
在 F# 中,这是我到目前为止所拥有的
type public Guide() =
member val public Id = 0 with get, set
member val public Created = DateTime.MinValue with get, set
但是我遇到的问题是getter/setter不能有访问修饰符!
我是 F# 的新手,所以我想知道执行此类操作的最佳方法。但是,我不只是想用 F# 重写 C# 代码!我想知道正确的(功能)方法。也许使用其他构造?
编辑:对于 NHibernate,在 setter 中将 private 替换为 protected :)