問題タブ [linq-to-sharepoint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linq - LINQtoSharePointクエリのMultiChoice値を修正する
LINQ to SharePointクエリを使用して、SharePointリストからアイテムを返しています。
ただし、クエリを実行しているリスト、OOTBタスクリストには、列挙型に変換される複数の選択肢のフィールド(ステータス、優先度)がいくつかあります。クエリ結果では、タスクアイテムのステータスは「_2Normal」として返され、予想どおり「(2)Normal」として返されません。SPMetal.exeによって生成されたプロキシファイルに、必要な値を含むタスクステータス列挙のChoiceAttributeがあることがわかります。
上記のクエリを変更して正しい値を返すにはどうすればよいですか?
ありがとう、MagicAndi。
c# - 指定されたキャストは有効ではありません
SPMETAL を使用して C# ファイルを生成し、LINQ を使用して Sharepoint オブジェクトにアクセスできるようにしました。
ただし、非常に単純なクエリを使用すると、奇妙なエラーが発生します。
指定されたキャストは無効です。
スタック トレース:
Set__zleceniaTrigger(Object , Object ) で Microsoft.SharePoint.Linq.StaticPropertyMap.SetToEntity(Object entity, Object value) で Microsoft.SharePoint.Linq.SPItemMappingInfo.MaterializeEntity[TEntity](DataContext dc, SPDataList list, SPListItem item, System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() at System.Collections.Generic.List
1..ctor(IEnumerableの lambda_method(ExecutionScope 、 SPListItem ) で SPItemMappingInfo itemMappingInfo、JoinPath joinPath)1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable
1 ソース) C:\XXXXXXXXX\QuickModify\Program.cs: 42 行目の QuickModify.Program.Main(String[] args) at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) at Microsoft.VisualStudio.HostingProcess .HostProc.RunUsersAssembly() で System.Threading.ExecutionContext.Run (ExecutionContext executionContext、ContextCallback コールバック、オブジェクト状態) で System.Threading.ThreadHelper.ThreadStart()
クエリ自体は次のようになります。
確かに、これは最適なクエリではありませんが、必要なレコードのみをフィルター処理するために .Where を使用するクエリでも同じエラーが返されます。
を使用して特定の列を選択できることがわかりましたが.Select(z => new ZlecenieItem(){ ColumnName = z.ColumnName, ... })
、これを使用してルックアップ列を選択することはできません.
クエリで、複数のリストへの参照や、EntityRef/EntitySet を使用した完全なエンティティの射影など、サポートされていない要素が使用されています。
他のリストから値を取得する必要がある場合があるため、これは問題です。ルックアップ値を使用すると便利です。
MS 製品で初めての本物のバグを見つけたのでしょうか、それとも (もっと可能性が高いのは) 何か間違ったことをしているのですか?
c# - 動的 linq を使用した複数選択フィールド
ユーザーがフェーズでアイテムをフィルターできる SP2010 ページを作成しています (これは複数選択フィールドです)。パフォーマンス上の理由とフィルターの性質から、このクエリを作成するには System.Linq.Dynamic に頼らなければなりませんでした。
私は次のことを試しました(これは実際のコードではありませんが、私がやっていることを例示しています):
これは、アイテムにフェーズが 1 つしかなく、フィルタリングされているフェーズである場合に機能します。アイテムに複数のフェーズ (フェーズ 1 と 2 など) があり、フェーズ 1 でフィルター処理する場合、表示する必要があります。複数選択フィールドをフィルタリングするにはどうすればよいですか?
編集: 言及するのを忘れて、オブジェクト「Phase.Value」の型は、SPMetal を使用して生成されたフラグ列挙型です。
linq - SPMetal: 「表示名」の代わりに内部名を使用するようにオーバーライドする方法
そのため、SPmetal ツールを使用してデータ クラスを生成し、LINQ to SharePoint を使用しています。
このツールの機能の 1 つは、表示名でサイト列にエイリアスを設定することです。
内部名または静的名を使用するように SPMetal 設定を上書きするにはどうすればよいですか?
sharepoint - マルチルックアップによる複雑なクエリ
マルチルックアップ値のいずれかが別のクエリの結果に含まれているリストのアイテムを取得しようとしています。
状況は次のとおりです。ユーザーが 5 つのプロパティ ドロップダウンの一連の共有ポイント (Foundation 2010) リストを使用してレポート (「融合」) を作成できる Web パーツを構築しています。プロパティは、リスト内のルックアップを通じて接続されます。ドロップダウンの選択が変更されるたびに、ポストバックが発生し、次のドロップダウンが再入力されます。
問題は、プロパティ間の接続がドロップダウンと単純に一致しないことです。これは、ドロップダウン入力がレポートの直感的な入力用に選択されており、データモデルが効率的で簡単なプログラミング用ではなく、システム データの簡単で直感的な入力用に設計されているためです...
データ モデルの関連部分:
-場所 (場所) はリストです
-契約 (契約) はリストで、各契約には 1 つ以上の場所があります (マルチルックアップ)
-緊急 (緊急) はリストで、各緊急事態には 1 つの契約があります(ルックアップ)
-Meldingtypes (レポートタイプ) はリスト
です -Categoriën (カテゴリ) はリストです。各カテゴリには 1 つの meldingtype があり (ルックアップ)、各カテゴリには 1 つ以上のコントラクトがあります (マルチルックアップ)
レポートの入力は次のとおりです。
ユーザーは最初に Locatie を選択し
ます ユーザーは 2 番目に Meldingtypeを選択し
ます ユーザーは 3 番目に Category を選択します ユーザー
は 4 番目に Contract
を選択します 最後にユーザーは Urgentie を選択します
もちろん、ドロップダウンには有効なオプションのみを入力する必要があります。したがって、場所が選択されると、ドロップダウンに表示される唯一のメルディングタイプは、選択された場所を持つ契約を持つカテゴリを持つものでなければなりません...ええ、私は知っています;)
ドロップダウンに入力するためのクエリの作成に問題があります。複数のクエリ、Contains セレクターを使用した構造など、いくつかの方法を試してきましたが、どれも機能しませんでした。最後の繰り返しで、アイテムがマルチルックアップによって参照されるときにアイテムが持つプロパティを使用するクエリを作成しました。以下は、meldingtype ドロップダウンの例です。
selectedLocatieId は、Locatie ドロップダウン コントロールから値を取得するプロパティです。
上記のコードは、System.InvalidOperationException をスローします。エラーの説明はオランダ語で、翻訳すると次のようになります。
EntitySet.Contains を使用すると、同じエラーが発生します。
いくつかの順列を試しましたが、正しいものが見つからないようです。マルチルックアップ フィールドを使用した linq-to-sharepoint クエリの良い例を見つけることができません。また、linq にまだ十分に慣れていないため、市長の間違いを犯している可能性があります。私がこれを理解している間、私は本当に役立つアイデアをいただければ幸いです。
[編集:別の試行が失敗しました] 中間結果を確認するために、すべてのステップの個別のクエリを作成しようとしました。また、Any-Contains の組み合わせを試して、categorie のマルチルックアップ コントラクトと、その場所から取得した複数のコントラクトを照合しました。
locatieItem と contractenData は期待どおりに入力されますが、categorieenData は再び同じエラーを生成します。[/編集]
PS コード内のオランダ語の名前は英語で非常に読みやすいため、名前を翻訳していません。混乱させて申し訳ありません。
c# - LINQ to Sharepoint InsertOnSubmit の質問
たとえば、Product というリストがあり、ProductName (タイトル)、ProductPrice、ProductType の 3 つの列があります。
- ProductName は文字列です
- ProductPrice は通貨です (double)
- ProductType は ProductTypes リストのルックアップです
通常、ルックアップ列が含まれていない場合、これは簡単ですが、挿入時にルックアップ列を処理する方法がわかりません。
これを試してみましたが、エラーが返されますSpecified cast is not valid.
これが現在のコードです
newProduct.ProductType
ここでエラーが発生するので、どうしますか。
ddProductType DataSource はProductType リストTitle
であり、その中で使用するDataTextField
ことに注意してください。DataValueField
linq - Linq to SharePointへのnull参照例外のスロー
SharePoint 2010 プロジェクトでは、Linq to SharePoint を使用して ConfigurationItems のリストを取得しています。私たちのテスト環境では、このリストからデータを取得する際に問題は発生しませんでした。私たちの実稼働環境では、リスト内のアイテムをループするときに null 参照例外が発生することがあります (現在はパターンを見つけることができません)。
以下は、Linq to SharePoint コードからスローされる例外です。
GetConfiguration メソッドで使用するコードを次に示します。
これを追跡して、この例外の原因を突き止める方法についてアイデアを持っている人はいますか?
2011 年 5 月 31 日更新:
実稼働環境でこの動作を再現できるパターンを見つけました。また、テスト環境でもこの問題が発生し、AdPlus を使用していくつかのクラッシュ ダンプ ファイルを抽出しました。
この動作は、アプリケーション プールがリサイクルされた後に発生します。このエラーを修正する唯一の方法は、完全な IIS リセットを実行することです。
クラッシュダンプ分析で、次のような例外メッセージを見つけました: 例外コード: 0xC0000005 例外情報: スレッドは、適切なアクセス権がない仮想アドレスから読み書きしようとしています。
誰かがこの例外についてもう少し情報を提供してくれることを願っていますか?
.net - Linq クエリの SharePoint ルックアップ (カウント関連) 値
投稿とコメントの 2 つのリストがあります。コメントには投稿リストへのルックアップ列があり、投稿にはコメント リストへのルックアップ (カウント リレート) 関係があります。私がやろうとしているのは、各投稿のコメント数を表示することです。何らかの理由で、エンティティ参照でこれを行う方法がわかりません。
私は ArchiveItem クラスを持っています:
そして、実行しようとしているクエリ:
いくつかの異なる方法を試しましたが、さまざまなエラー メッセージが表示されます。この特定のバージョンは私に
クエリで、複数のリストへの参照や、EntityRef/EntitySet を使用した完全なエンティティの射影など、サポートされていない要素が使用されています。
何か案は?これはかなり簡単だと思いましたが、何かが足りないのかもしれません。
linq - Linq で LinqDataSource を使用して、ページング用に共有ポイントにする
私はSharepoint 2010ビジュアルWebパーツを開発しており、その中でLinqDataSourceを使用して、GridViewでのページングと並べ替えを処理しようとしています。spmetal を使用してデータ コンテキストとエンティティ オブジェクトを作成しました。そして今、これは私のコードです:
私のマークアップ:
と私のコード:
問題は、サイトで Web パーツを表示しようとすると、次のエラーが表示されることです: 型 'System.Int32' の式は、戻り値の型 'System.Object' には使用できません
グリッド ビューでページングを無効にすると、このエラーは消えます。
なぜこれが起こっているのか分かりますか?
どんな助けにも感謝します。
linq - LINQ to Sharepoint の最適化
Sharepoint 2010 には 3 つのリストがあり、リストを取得して関連付ける作業コードがあります。私の問題は、ページの読み込みに約 15 秒かかることです。私はLINQ to SharepointとLINQ全般の初心者です。私の質問は: このコードをより速く実行する方法はありますか?
控えめに言っても、このコードにかかる時間は苛立たしいものです。
ありがとう。