次の問題が発生しました。WithまたはWithMany命令を使用して、外部結合を介してビジネス関係の役割のリンクリストを取得しようとしています。参照整合性はデータベースにありますが、ロールテーブルの主キーは複合キーです。それ以外の場合は例外が発生するため、OuterJoin句を使用するのはそのためです。
クエリが実行されると、結果は期待どおりになり、データが適切に入力されます。それでも、データベースで使用可能なロールがまだない場合があります。したがって、これらの場合、返されるSimpleList(以下のロール)はnullになると予想されます。これは、使用可能なデータがないためです。代わりに、Simple.DataはSimpleLIstを返し、デバッグで動的ビューを展開すると、「空:このオブジェクトに関するこれ以上の情報は見つかりませんでした」と表示されます。さらに下に移動してSimpleListの最初のオブジェクトを取得しても、デバッグで上記と同じ情報を持つSimpleRecordを返します。SimpleRecordのプロパティを要求した後でのみ、レコードが空であるという情報を取得します。これは、nullを返すためです。
結論として...階層を下に移動せずにSimpleListまたはSimpleRecordが空かnullかを確認する方法を教えてくれる人はいますか?
Simple.Data 0.16.1.0を使用しています(ポリシーにより、まだベータ版を使用できません)
ストーリー全体を読んでくれてありがとう...
以下はコードサンプルです。
dynamic businessRelationRoles;
var query = db.Zakenrelaties.As("BusinessRelations")
.All()
.OuterJoin(db.Zakenrelaties_Rollen.As("Roles"), out businessRelationRoles)
.On(zr_ID: db.Zakenrelaties.zr_ID)
.With(businessRelationRoles);
foreach (var relation in query)
{
//Get the SimpleList as IEnumerable
IEnumerable<dynamic> roles = relation.Roles;
//Get the first available SimpleRecord
var role = roles.First();
//Check if any record was returned..This passes always?? Even if the SimpleList was empty
if (role != null)
{
//Get the id of the role. returns null if SimpleRecord was empty
var roleId = role.zrro_id;
}
}
私を助けてくれる人はいますか?