我有以下實體:實體框架代碼優先樹模型
public class Module
{
public Module()
{
SubModules = new List<Module>();
}
public int Id { get; set; }
public string Title { get; set; }
public string Action { get; set; }
public string Controller { get; set; }
public string Icon { get; set; }
public List<Module> SubModules { get; set; }
}
,當通過代碼首先初始化生成以下表模式:
CREATE TABLE [dbo].[Modules](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Title] [nvarchar](max) NULL,
[Action] [nvarchar](max) NULL,
[Controller] [nvarchar](max) NULL,
[Icon] [nvarchar](max) NULL,
[Module_Id] [int] NULL,
CONSTRAINT [PK_dbo.Modules] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF)
)
GO
ALTER TABLE [dbo].[Modules] WITH CHECK ADD CONSTRAINT [FK_dbo.Modules_dbo.Modules_Module_Id] FOREIGN KEY([Module_Id])
REFERENCES [dbo].[Modules] ([Id])
GO
ALTER TABLE [dbo].[Modules] CHECK CONSTRAINT [FK_dbo.Modules_dbo.Modules_Module_Id]
GO
的問題是,當我填寫此包含父模塊(Module_Id爲null)和兩個子模塊(父模塊的Module_Id)並查詢DBContext的模塊集合,我得到父模塊正確收集子模塊的集合,但是我也得到了返回的子模塊通過他們自己。
所以模塊集合中的DbContext看起來有點像這樣:
ParentModule
---Child Module
---Child Module
Child Module
Child Module
我需要的是爲這兩個子模塊不要在自己的權利被返回模塊,但只是作爲的孩子父母。
希望我已經解釋過了。