2

子屬性的映射我有一個實體是這樣的:實體框架|代碼優先|從CultureInfo.Name

public class Course { 
    public CultureInfo Culture {get; set;} 
    : 
} 

而且我想只是CultureInfoName屬性映射到表中的一列是實體框架爲我。

我該怎麼辦?目前我已經試過了看DbContext的OnModelCreating()方法,但是我沒有發現任何突出的東西。

我在Code First方法中使用Entity Framework 4.1和MVC 3應用程序。

非常感謝。

回答

5

Unfrotunatelly EF不能這樣做。解決方法是使用Name定義單獨的屬性,該屬性將映射到數據庫並將您的Culture屬性標記爲未映射。

public class Course 
{ 
    public CultureInfo Culture { get; set; } 
    public string CultureName 
    { 
     get 
     { 
      if (Cuture != null) 
      { 
       return Culture.Name; 
      } 

      return null; 
     } 
     set 
     { 
      // same check for value can be placed here 

      Culture = new CultureInfo(value); 
     } 
    } 
} 

而在映射將定義:

modelBuilder.Entity<Course>() 
      .Ignore(c => c.Culture); 
+0

不是我想聽到的,但我們不能擁有一切,我想:)非常感謝拉吉斯拉夫! – jwwishart 2011-04-16 11:57:12