簡體   English   中英

實體框架數據庫首先生成多對多中間表,但其中沒有多余的列

[英]Entity Framework DB First generate many to many intermediate table WITHOUT having extra columns in it

對我來說很清楚,如果我有一個多對多的關系,而中間表中沒有外鍵列,那么EF只會為主表生成實體,在每個主表中放置虛擬集合來表示這種關系。 當我與包含多余列的多對多關系時,EF將為中間表生成一個實體,以便提供對這些多余列的訪問。 我需要知道有沒有一種方法可以生成中間表實體而表中沒有任何額外的列。

換一種說法:

假設我們具有以下關系:Schools-StudentSchool-Students。 如果我知道SchoolId,我應該如何在沒有中間表格的情況下讓所有不在那所學校學習的學生。 (在對象模型中,只有當前在校學習的學生的集合)。 整個圖片中我缺少什么?

我相信,當且僅當多對多關系是雙方的全面參與時,EF才會保留兩個表格。

在這種情況下,SQL:

Select *
From Students
Where StudentId Not IN( Select StudentId
                        From   Schools                    
                        Where  schoolId = x)   

或lambda

var SchoolsRequested = Schools.Where(x=>x.schoolId = x);
var notWantedStudentIds = SchoolsRequested.Select(x=>x.StudentId).ToList();
Students.Where(x=> !notWantedStudents.Contains(x));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM