したがって、現在のアプリケーションでは、単一のオブジェクトを返すリポジトリを使用してデータベースにクエリを実行する必要があります。問題は、情報が 2 つの異なるテーブルに分割されていることです。取得しようとしているオブジェクトは Rule オブジェクトです。ルール クラスは、次のデータベース エンティティで構成されます。
class Rule
{
STRATRULEDEF ruleDefinition { get; set; }
List<STRATCODE> ruleCodeList { get; set; }
私のリポジトリでは、次のクエリを使用して関連情報を取得しています。
public void GetRule(int ruleKey)
{
Rule ruleQuery = from ruleDefinition in AREContext.STRATRULEDEFs
from ruleCodes in AREContext.STRATCODES
where ruleDefinition.STRATRULEKEY == ruleKey
&& ruleCodes.STRATRULEKEY == ruleKey
select new { ruleDefinition, ruleCodes };
だから私には2つの問題があります。
1) ruleQuery を「Rule」オブジェクトとして返すにはどうすればよいですか。「var」を rule に変更すると、次のエラーが発生します。
エラー 10 型 'System.Linq.IQueryable' を 'TestRules.Rule' に暗黙的に変換できません。明示的な変換が存在します (キャストがありませんか?)
System.Linq.IQueryable を TestRules.Rule にキャストできますか?
2) テーブルには 1 対多の関係があるため、クエリは 1 つの ruleDef レコードと複数の ruleCode レコードを返す必要がありますが、現時点では、相互に重複して存在する複数の ruleDef レコードを取得しています。何か案は?
ありがとう
スティーブ