我有一個域服務類,如下包括兒童實體集合在Silverlight領域服務
[MetadataTypeAttribute(typeof(Question.QuestionMetadata))]
public partial class Question
{
internal sealed class QuestionMetadata
{
private QuestionMetadata()
{
}
[Include]
public EntityCollection<Answer> Answers { get; set; }
public EntityCollection<AssignmentsQuestionsMapping> AssignmentsQuestionsMappings { get; set; }
public int Marks { get; set; }
public string QuestionDescription { get; set; }
public long QuestionID { get; set; }
public string QuestionTitle { get; set; }
public EntityCollection<UserQuestionAnsweredMapping> UserQuestionAnsweredMappings { get; set; }
}
}
而且我已經在域名服務下面的查詢
public IQueryable<Question> GetQuestionsByAssignmentId(long assignmentId)
{
var questions = from q in this.ObjectContext.Questions.Include("Answers")
join qam in this.ObjectContext.AssignmentsQuestionsMappings on q.QuestionID equals qam.QuestionID
join assign in this.ObjectContext.Assignments on qam.AssignmentID equals assign.AssignmentID
where assign.AssignmentID == assignmentId
select q;
return questions;
}
據我所知,如果你想在域服務查詢中包含子實體,然後在實體的元數據文件中設置[包含]屬性,並通過.Include(「ChildEntityCollectionName」)將其包含在查詢中。
我已經完成了他們,但我仍然沒有收到我的客戶端的ChildEntity集合。 我在想什麼?
你有一個外鍵在數據庫中的問題和答案之間建立的更多信息?如果是這樣,你的模型(ConceptualEntityModel)自實施以來是否已更新? – Chris 2012-01-27 17:28:45
是答案表的問題ID爲forgein鍵。奇怪的是當我返回this.ObjectContext.Questions.Include(「答案」),即沒有在查詢中的linq我得到的問題實體在客戶端的答案實體。任何想法發生了什麼? – Sumit 2012-01-28 05:09:32
你可以直接在SQL中運行相同的查詢,並驗證你正在得到結果嗎?您需要驗證數據庫中的數據是否符合您在LINQ中的假設。 – 2012-01-30 17:28:37