我有以下实体:实体框架代码优先树模型
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
我需要的是为这两个子模块不要在自己的权利被返回模块,但只是作为的孩子父母。
希望我已经解释过了。