0

linq を使用してストアド プロシージャを呼び出そうとしています。これが私のコードです:

List<AllRowsMyDTO> list = Context.ExecuteStoreQuery<AllRowsMyDTO>("exec GetAllRows {0}", ClassID).AsQueryable().ToList();

public class AllRowsMyDTO
{
    public int StudentId { get; set; }
    public string StudentName { get; set; }
    public string StudentLevel { get; set; }
    public string FilePath { get; set; }
    public string StudentPreRequisites { get; set; }
    public bool IsGraded { get; set; }
}

GetAllRows ストアド プロシージャは、1 つの整数パラメーターを受け取り、select ステートメントを実行して、その ClassID に一致するすべてのレコードをフェッチします。リストには、ストアド プロシージャによって返される行と同じ数の AllRowsMyDTO 型のオブジェクトが含まれます。ただし、ブール値のプロパティを除いて、すべてのプロパティは null です。ここで何が起こっているのか分かりますか?

また、これは LinQ を使用してストアド プロシージャを呼び出す最良の方法ですか?

御時間ありがとうございます。

4

1 に答える 1

0

問題は、マッピングでキーを指定しなかったことであり、EF はそれが何であるべきかを判断できません。EF では、結果に対してなんらかの形式のキーが必要です (必要に応じて、複合キーにすることもできます)。

于 2012-04-25T18:27:27.083 に答える