2016-04-27 9 views
0

を返さない:サイトコアは、私のサイトコアのサガの問題2の既知のアイテム

var item = sitecoreService.GetItem<KnownMappedObject>(knownId) 

このコードは生産で動作し、他のほとんどのケースでは、コードが正しく動作している、:これと同様の呼び出しがあります私はページに移動し、この行の項目はnullです。

既知のIDは正しいです(たとえば、データベースに存在しますが、nullに戻るなど)。私は、ローカルから生産現場のデータベースを取り出して、すべてが正しいことを確認しましたが、構成が正しいことを確認しようとしました。

このメソッドには、アイテムが存在してもnullを返すようなルールはありますか?

編集 アイテムはデータベースにあり、どの言語に関連付けられているかを確認する方法がわかりません。内容は多言語ではありません。

編集2 したがって、アイテムはDBから返され、DBの言語はENを示唆しています。しかし、コードをステップ実行すると、Item.Version == 0をチェックするアイテムが作成されます。これを回避する方法は、VersionDisablerです。私はそれが生産には存在しないので、これが答えだとは思わない。

また、渡される「言語」オブジェクトには、現在のページの名前がありますか?私はそれが "en"かそれとも何かのように思ったでしょうか?

おかげで、 ジェームズ

+1

このアイテムはWebデータベースに存在しますか?正しい言語で? – Gatogordo

+0

具体的なタイプにキーマッピング属性がありませんか? –

答えて

1

SitecoreはURLの最初の部分をこの言語で使用していたため、不明な言語で項目のバージョンをフィルタリングしていました。

(!何の言語バージョンが存在しないので)返されていない項目で結果の

設定はあり:

<setting name="Languages.AlwaysStripLanguage" value="false"/> 

起きてからこれを防ぐためにはfalseにする必要があります。

ありがとう、 James

1

一般的な理由はありません:

- 何の文脈言語バージョン(単一言語は 'en' とデフォルトここで定義された?)

- 現在のユーザーのための無読み取りアクセス(してみてくださいSecurityDisablerでラップする)

+0

最新の編集を参照してください。more info –

+0

定期的なサイトコアアイテムを取得するには、 'var rawItem = sitecoreService.GetItem (knownId)'のような行を追加してください。モデルにキャストする際に問題が発生しています。それでもnullの場合は、 'Sitecore.Context.Database.GetItem(id)'を試してください。どのデータベースがあなたのsitecoreServiceを使用していますか? – Daniil

+0

モデルを鋳造する前に退屈です。それは、コンテンツのバージョンを持たないことに腹を立てている。たとえば、SiteCore.Data.Items.Itemオブジェクトには.Versionsプロパティがあり、空です。 –

関連する問題