![](/img/trans.png)
[英]Entity Framework Core: How to include a null related Entity with its null column properties?
[英]How to use Include to include an Entity not related to another entity
我想通過構造一個嵌套的json對象來消耗一個WEB API。
我有兩個實體,班級和學生
我希望JSON輸出看起來像這樣的構造
[
{
"ClassId": 1,
"ClassName": "Class A",
"Students": [
{
"StudentId": 1,
"StudentName": "student 1"
},
{
"StudentId": 2,
"StudentName": "student 2"
}
]
},
{
"ClassId": 2,
"ClassName": "Class B",
"Students": [
{
"StudentId": 3,
"StudentName": "student 3"
},
{
"StudentId": 4,
"StudentName": "student 4"
}
]
}
]
當我嘗試在班級數據內部操縱學生數據時,我遇到了一個問題。
我正在嘗試此代碼,但它給了我一個錯誤。
public IQueryable<tbl_mosque> Gettbl_mosque()
{
var Classes = db
.Class
.Include("Students")
.Select(t => new Class
{
id = t.Id,
name = t.Name,
student = t.students.Select(p => new student
{
Id = p.id,
Name = p.Name
})
}).ToList();
return Classes;
}
您只需要
return db.Class.Include("Students").ToList();
Include
表示引擎應包括實現Students
。
PS:您應該提到問題中的錯誤和堆棧跟蹤。
更新
如果相關表(在域語義中)之間沒有關系,則可以使用JOIN。 由於您具有一對多的關系,因此可以幫助您:
var classes = db.Classes.GroupJoin(db.Students, c => c.Id, s => s.ClassID,
(c, s) => new {Class = c, Students = s});
在這里, classes
是一個匿名類型的對象列表,該對象類型由Class
對象組成,並與Students
相關。
我現在無法對其進行測試,但是您可以按照以下步驟加入他們:
var joined = classesList.Join(studentsList,
_class => _class.Id, _student => _student.ClassId,
(_class, _student) => new Class
{
id = _class.Id,
name = _class.Name,
student = new student
{
Id = _student.id,
Name = _student.Name
})
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.