2012-09-03 52 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;不要工作。 –

相关问题