2013-03-12 62 views
1

我建立一個F#ASP.NET MVC應用程序,在我的車型之一是這樣的:屬性的初始值是指GUID

namespace MyApp.Models 

open System 
open System.ComponentModel.DataAnnotations 

type ProductCategory() = 
    [<Key>] member val Id = Guid.NewGuid() with get, set 
    [<Required>] member val Name = "" with get, set 
    member val ParentCategory = Guid.Empty with get, set 

簡單類型的產品類別中,每個類別可以有一個父(由Guid引用)。這是聲明ParentCategory屬性的正確方法嗎?我嘗試過讓它可以爲空或者是一個選項,但是沒有成功,但是因爲我對所有這些都是陌生的,所以我完全喪失了所有這些細節。我試過尋找,但我得到的最遠是人們宣佈它爲Guid?在C#中,我無法做到這一點。

任何有關正確聲明這種方式的提示將不勝感激。

+3

你試過'成員val ParentCategory =可爲空()與get,set'?或者'成員val ParentCategory:Guid選項=沒有get,set'? – ildjarn 2013-03-12 23:15:08

+2

@ildjarn的建議是正確的,但我認爲'option'替代方案更具慣用性。 – 2013-03-13 06:58:43

+0

我會發誓我曾嘗試過@ildjarn ......但它似乎沒有,因爲它完美的作品。我可能已經很好地省略了括號......我不知道,但無論如何感謝你,因爲這是我所需要的。如果您在另一個答案中回覆,我會將其標記爲正確的答案。再次感謝你。 – 2013-03-14 14:34:40

回答

1

因此,基於@ildjarn答案,這裏是最後的事情是如何工作的:

namespace MyApp.Models 

open System 
open System.ComponentModel.DataAnnotations 

type ProductCategory() = 
    [<Key>] member val Id = Guid.NewGuid() with get, set 
    [<Required>] member val Name = "" with get, set 
    member val ParentCategory = Nullable<Guid>() with get, set 

非常感謝您的幫助!