2012-11-02 200 views
0

我得到了錯誤The property 'Rank' is not a declared property on type 'MasterUser'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property.我檢查了我的模型類,它在那裏。該屬性不是類型'類'的聲明屬性

public class MasterUser 
{ 
    //many other properties... 
    public virtual char Rank { get; set; } 
    //more properties below 
} 

我也檢查了我的數據庫上下文,它也存在並完美映射。

public class BBDataContext : DbContext 
{ 
    public DbSet<MasterUser> Users { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     #region MUSR_USRID mapping 

     //Mapped properties above.... 
     modelBuilder.Entity<MasterUser>() 
      .Property(usr => usr.Rank).HasColumnName("MUSR_RANK"); 
     //More mapped properties.. 

     modelBuilder.Entity<MasterUser>().ToTable("dbo.MUSR_FIL"); 
     #endregion 

     base.OnModelCreating(modelBuilder); 
    } 
} 

在表中,MUSR_RANK是可空的與char數據類型。

我該如何解決這個問題?數據庫對此有影響嗎?我目前正在使用SQL Server 2000.

感謝您的幫助。

回答

6

Primitive Data Types Supported in the Entity Data Model

所以,你必須使用一個string代替char的,我覺得

OnModelCreating

modelBuilder.Entity<MasterUser>() 
      .Property(usr => usr.Rank).HasColumnName("MUSR_RANK") 
      .HasMaxLength(1) 
      .IsFixedLength() 
      .IsUnicode(false); 
+0

添加一些DATAS這會影響到從EF傳遞的數據數據庫?就像,它會自動將字符串從EF轉換爲數據庫中的char? – Musikero31

+0

@ Musikero31是的,最大和固定長度的控制,你不應該有任何問題。 –

+0

所以你應該說即使數據庫中的'MUSR_RANK'的數據類型是'char',EF也會很容易地將映射類型字符串轉換爲char權限? – Musikero31

相關問題