Jam*_*xon 5 f# entity-framework
我正在业务应用程序中进行概念验证,我想用F#one替换当前的C#Code-First Entity Framework实现.我下面这个文章,这似乎工作得很好,但我希望用FSharp记录类型,而不是该文章使用的类的.当我尝试将数据注释添加到记录类型时,如下所示:
type Family = {[<Key>]Id:int; LastName:string; IsRegistered:bool}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Error 1 The type 'Key' is not defined
Run Code Online (Sandbox Code Playgroud)
有没有办法使用记录类型的数据注释?显然,EF Code-First需要注释......
记录类型支持属性就好(并且使用您拥有的语法).
检查您的引用System.ComponentModel.DataAnnotations是否有序,这KeyAttribute是定义的位置.
编辑:EF希望使用属性,这就是为什么使用记录与EF不能很好地融合的原因.您仍然可以通过使用CLIMutable属性标记记录来使其在F#3.0+中工作(这会生成属性设置器和无参数构造函数,这些构造函数被C#中心框架和库视为理所当然).
您正在查看的文章是用F#2.0编写的 - CLIMutable还没有出现,并且无法使用记录.