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