0

現在、SilverlightとRIAサービスを使用しています。

私のプロジェクトには、DomainServiceとAuthenticationServiceがあります。

ObjectContext認証したときに、デバッグするとデータベースのすべてのレコードを表示できることに気付きました。

しかし、DomainServiceを使用すると、IEのデフォルトのクエリからオブジェクトを取得しようとしていますGetStudentsが、クエリは常に0要素を返します。

しかし、それから、私はやりたいですInsert、それはうまくいきます

            // Has finished
            var jsonObjects = JsonConvert.SerializeObject(Test, Formatting.Indented);

            var context = new DatabaseDomainContext();
            // it works!! add the object
            //Student newStudent = new Student();
            //newStudent.Id = "OPA-3DKCL2";
            //newStudent.FirstName = "Oscar";
            //newStudent.LastName = "Fimbres";

            //context.Students.Add(newStudent);
            //context.SubmitChanges();

            // all the time returns 0 elements
            var students2 = context.Load(context.GetStudentsQuery()).Entities;

            // the same
            var students = context.GetStudentsQuery();
            AnsweredTest answerTest = new AnsweredTest();
            answerTest.JsonTest = jsonObjects;
            answerTest.Date = DateTime.Now;
            //answerTest.Student = context.Students.SingleOrDefault(x => x.Id == "OPA-3DKCLS");

ここに画像の説明を入力してください

重要なデータが不足している場合は、お知らせください。

4

1 に答える 1

2

Completedロード操作は非同期です。イベントをサブスクライブして、そこで結果を取得する必要があります。

var loadOperation = context.Load(context.GetStudentsQuery());
operation.Completed += OnStudentsLoaded;

private void OnStudentsLoaded(object sender, EventArgs e)
{
    var operation = sender as LoadOperation<Student>;
    if (operation == null)
    {
        throw new ArgumentException("sender is not LoadOpearation<Student>");
    }
    IEnumerable<Student> students = operation.Entities;

    //.....
}
于 2012-08-19T20:20:19.957 に答える