-1

「Category」タイプのフィールドを持つ「User」というクラスを作成しています。

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; }
}

このフィールドが値を取得するたびに、null値を設定することはできなくなります。

このフィールドを再びnullに設定するにはどうすればよいですか?

4

2 に答える 2

1

これは遅延読み込みと関係があると思います。ユーザーにCategoryを要求されていないため、それはまだnullであり、nullに設定しても、Categoryに変更があることをEFにトリガーしません。カテゴリをユーザーに含めてから、その値を変更する必要があります。このようにして、EFはCategoryの変更を確認し、nullに設定します。

次のようなものを試してください。

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();
于 2012-09-03T20:58:57.310 に答える
0

プロパティを null に設定するだけです。

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

これを念頭に置いていましたか?

于 2012-09-03T20:38:50.640 に答える