私には2つのクラスがあります。 エリアおよびLanguageArea。私はLanguageAreaを使って翻訳されたエリアを扱います。DataContextからクラスをコピーすると、次のデータベース呼び出しでキャッシュされたデータがEntity Frameworkにロードされますか?
Area.cs
文字列のタイトル、
文字列説明、
写真(写真クラスのセット)、
LanguageAreas(LanguageAreaクラスのセット)
LanguageArea.cs
言語(どの言語領域が翻訳されるかを定義する)、
エリア、
Titl E(Areaの翻訳されたタイトル)例えば、
説明(領域の翻訳説明)
UIから要求された翻訳領域は私上記の方法
public Area GetByLanguageId(long areaId, byte LanguageId)
{
var langArea = db.LanguageArea
.Where(i => i.Area.id == areaId && i.Language.id == LanguageId).FirstOrDefault();
Area newArea = null;
if (langArea != null && langArea.Area != null)
{
newArea = langArea.Area; // I have copied to area to get area with pictures in it
newArea.Title = langArea.Title; // I got the translated Title
newArea.Description = langArea.Description; // I got the translated description
}
return newArea;
}
最初LanguageAreaを得ます翻訳されたタイトルと説明を持つ全領域オブジェクトを取得します。 しかし翻訳されたタイトルと説明はObjectContextに保存されます。その後、UIから要求されたデフォルトの言語やその他の言語が、ObjectContextから翻訳されたタイトルと説明を取得した後、データはDBから取得されません。
私は試しましたMergeOption.OverwriteChanges
です。今回はいつも大丈夫でしたが、保存すると翻訳された情報は元のDBではなく保存されました。
私は試しましたContext.Refresh();
これは一時的な解決策のようです。
このような状況を処理するにはどうすればよいですか?
ありがとうございます。
を願って、私は今それを試してみて、それが動作するかどうかここに戻って取得するつもりですかnot –
ありがとうございます –
ObjectContextからnewAreaをデタッチすると、通常はArea(PicturesとLanguageAreas)のサブコレクションもデタッチされますが、これらのサブコレクションが必要です。あなたはこれについてアドバイスをしていますか?ありがとう –