實體框架7遷移:如何獲取長度大於1的varchar列?


我有以下內容:

[Table("Countries")]
public class Country
{
    public int CountryId { get; set; }

    [MaxLength(255), Required]
    public string CountryName { get; set; }

    [Column(TypeName = "varchar")]
    public string CountryCode { get; set; }
}

每次我應用遷移時,CountryCode都會變成varchar列,最大長度為1.我嘗試將MaxLength註釋設置為255並且仍然獲得最大長度1.當列設置為nvarchar時,它按預期工作。難道我做錯了什麼?

編輯:每當我顯式設置字符串數據類型時,長度設置為1.我可以使用Column(TypeName =“nvarchar”)]並將長度設置為1 ..

一般承認的答案

會喜歡使用數據註釋,但我能夠使用它:

 builder.Entity<Country>()
            .Property(e = e.CountryCode).HasSqlServerColumnType("VARCHAR(30)");

數據註釋尚未在Entity Framework 7中完全實現。您仍然可以向實體類添加註釋,以便其他框架(例如ASP.NET MVC)使用它們,但實體框架不會處理這些註釋。您可以在GitHub上跟踪Data Annotations的支持。

http://ef.readthedocs.org/en/latest/modeling/configuring.html





許可下: CC-BY-SA
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因