2012-09-03 88 views
-1

我正在構建一個名爲「User」的類,該類具有「Category」類型的字段。使用Code First和Entity Framework的可爲空的實體字段

public class User 
{ 
    public long Id { get; set; } 
    public virtual Category Category{ get; set; } 
} 

public class Category 
{ 
    public long Id { get; set;} 
    public string Name { get; set; } 
} 

只要此字段獲取值,就不再可能設置空值。

如何將此字段設置爲空?

+0

請提供代碼,你怎麼把這個字段設置爲null –

+0

user.Category = NULL; //不工作 –

回答

1

我認爲這是與延遲加載有關。由於您沒有爲用戶請求類別,它仍然爲空,因此將其設置爲空,不會觸發EF在類別上發生更改。您需要將類別添加到用戶,並更改該值。通過這種方式,EF將在類別上看到更改並將其設置爲空。

嘗試這樣:

var user = Context.User.Include(x => x.Category).FirstOrDefault(x => x.Id == yourUserid); 
// now user knows about Category, so you can set it to null 
user.Category = null; 
Context.SaveChanges(); 
0

只需設置屬性爲空:

 User user = new User(); 
     user.Category = new Category(); 
     user.Category.Id = 1; 
     user.Category.Name = "test"; 
     user.Category = null; 

你有這個想法?

+0

user.Category = null;不要工作。 –

相關問題