私はこのような方法があります:commit = false
Entity Framework、この問題を回避するにはどうすればよいですか?
事があれば、私は私が知っているように、このメソッドを期待、であると私は、(たとえば上向きに80回の)ループで繰り返しこのメソッドを呼び出す
public FbUser FindUserByGraphOrInsert(dynamic json, bool commit = false)
{
string graphId = json.id;
EntityDataModelContext context = DataContext.GetDataContext();
FbUser user = context.FbUsers.FirstOrDefault(u => u.FbGraphId == graphId);
if (user == null)
{
user = new FbUser();
user.FbGraphId = json.id;
user.FbUsername = StringExtensions.UnicodeDecode(json.name);
context.FbUsers.AddObject(user);
if (commit)
context.SaveChanges();
}
return user;
}
をユーザーは既にコンテキスト内にありますが、これは当てはまりません。
最終的に変更を保存すると、80人のユーザーのリストが表示されます。ここでは27人が区別されます。
私はこのメソッドがそれらの27を返すと期待していますが、これを達成するためにどうすれば変更できますか?
本当に毎回変更を保存する必要がありますか?
コンテキスト選択の最後にdistict()を使用してみましたか? –
どういう意味ですか? – bevacqua
これを保存する前に、実際にリストに追加した後、.Distinct()を使用してリストから別の要素をすべて取得すると、リストから別個の要素のみを取得し、明確な要素。 –