FSharp记录类型与实体框架代码优先

时间:2014-12-27 13:55:30

标签: entity-framework f#

我正在业务应用程序中进行概念验证,我想用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需要注释......

1 个答案:

答案 0 :(得分:6)

记录类型支持属性就好了(并且使用了你的语法)。

检查您对[{1}}的引用是否有序,是否定义了System.ComponentModel.DataAnnotations

修改:EF希望使用属性,这就是为什么使用记录与EF无法很好地融合的原因。您仍然可以通过使用KeyAttribute属性标记记录来使其在F#3.0+中工作(这会生成属性设置器和无参数构造函数,这些构造函数被C#中心框架和库视为理所当然。)

您正在查看的文章是用F#2.0编写的 - CLIMutable尚未解决,而且无法使用记录。