0
セッション内のレコード(GuildName
)を既に作成してコンテキストに添付しておけば、代わりにコンテキストからコンテキストを取得することができます。重複を作成することはできますが、重複を作成しないように継ぎ目を修正することはできません。EFがコンテキストからコンテキストを取り出そうとしていません
public static async Task ProcessNames()
{
var db = new SQLDbContext();
db.Configuration.ProxyCreationEnabled = false;
var existingNames = db.CharacterNames.Include("GuildName").Include("RealmName").Take(10).ToList();
var gatherGuildNameTaskList = (
from name in existingNames
select GetGuildFromName(name, db)).ToList();
await Task.WhenAll(gatherGuildNameTaskList);
db.SaveChanges();
}
public static async Task GetGuildFromName(CharacterName characterName, SQLDbContext db)
{
var character = await ApiHelper.GetJsonFromUrlAsync<Character>(new Uri(URL));
if (character.Guild == null) return;
//This is the call that appears to not be working as intended
var guildName = db.GuildName.
SingleOrDefault(x => x.RealmName.Name == character.Guild.Name) ?? new GuildName
{
Name = character.Guild.Name,
CharacterNames = new List<CharacterName>(),
RealmName = characterName.RealmName
};
if (!guildName.Equals(characterName.GuildName))
{
characterName.GuildName = guildName;
}
}
私はそれがテストのための10人の名前を取ったが、通常、そこに私が考えることができるいくつかの100kの
唯一のことは、GetGuildFromName
の検索方法の変更を保存し呼び出すことですが、私は気持ちを持っています意図したとおりに動作しない可能性がありますが、パフォーマンスは大きな要因ではありませんが、パフォーマンスを損なう可能性がありますが、私は物事を合理的に実行するように練習しようとします。
これはそれだった、私はそれが自分自身を添付することを文字に追加して考えましたコンテキストは、これを行うときにdbに保存されますが、ルックアップのコンテキストにはありません – Toxicable