2

在使用 VisualStudio 库中的 C#/F# 模板构建 F# ASP.NET MVC 4 应用程序时,一个疑问袭击了我。我有以下模型类:

namespace MyApp.Models

open System
open System.ComponentModel.DataAnnotations
open System.Collections.Generic

type Product() = 
    [<Key>] member val Id = Guid.NewGuid() with get, set
    [<Required>] member val Name = "" with get, set
    member val Iban = "" with get, set
    member val Categories = new List<ProductCategory>() with get, set

由于 F# 有自己的类型,在最后一种情况下,我们应该使用 F# 等价物(F# 列表、序列......)还是应该使用系统类型?如果是这样,原因是什么?

非常感谢你!

4

1 回答 1

2

根据经验,我会根据正在使用您的模型的语言来判断。如果它一直是 F#,那就去吧。如果它是混合的,你需要更加明智。顺便说一句,Option<>并且List<>可以很好地使用 C#(尽管我发现我需要类型别名来“清理”一些代码)。F# 序列也只是一个IEnumerable<>,所以不用担心。ResizeArray<>此外,在 F# 中使用数组和(aka )并没有错System.Collections.Generic.List<>——您只需要注意状态突变。

于 2013-03-13T14:47:13.510 回答