2017-07-17 40 views
-1

我有一個有許多屬性的書模型類。他們是不同類型和它們之間是ASP.NET EntityFramework CodeFirst遷移不會在表中創建一列

[Required, StringLength(13)] 
public char ISBN { get; set; } 

但由於某些原因,當我加入它創造的所有列正確,除了上面的一個初始遷移。當我檢查數據庫.sdf文件時,表格中缺少列ISBN。它需要不同的字段(如名稱,作者等)爲varchar,所以我使用「字符串」作爲它們的類型,同時對於ISBN,我需要使用長度爲13的「char」。我也嘗試使用char []作爲ISBN的類型,但該列仍然丟失。

爲什麼在國際標準書號的類型爲字符時使用哪種類型的ISBN而不是創建列?

回答

2

您的意思是字段ISBN是必填字段,長度爲13,但您聲明的類型爲char,屬於該屬性,表示單個字符。您需要將屬性更改爲此屬性。

public string ISBN { get; set; } 
+0

我說我也嘗試過使用'char []',但它沒有奏效。讓我困惑的是要求。它說名稱屬性必須是長度爲128的varchar,我在模型類中使用'string'作爲類型來解決這個問題,但對於ISBN,它表示它需要是長度爲13的字符。所以我應該使用'字符串'作爲這種類型? –

+0

那麼在c#和sql server中的數據類型有點不同,你需要學習它們。而對於ISBN而言,它不可能是13的長度,因爲如果它是一個字符就意味着它只是一個字符。可以這麼說,ISBN是長度爲13的字符數組,也可以用字符串來完成。我從來沒有使用'char []'創建數據庫與實體框架的字符串數組,所以我不知道如果這是可能的,但與類型字符串它肯定會工作。 – Stefcho