2012-04-18 188 views
0

我在与实体框架问题关系使用Visual Studio中的实体框架创建于2010

的问题很简单,我在SQL Server 2008数据库时,我导入的表在Visual Studio 2010项目中创建edmx文件(使用ADO.NET实体数据模型),并非所有关系都在模型中复制,只是其中的一部分。我试着删除重新创建模型,更新,甚至在一个完全新的项目同样的问题变得....

例如:

这种实体被称为“simte_plandeestudio”

创建步骤脚本这个表是:

CREATE TABLE [dbo].[simte_PlanDeEstudio](
    [Id] [uniqueidentifier] NOT NULL, 
    [Estudiante] [uniqueidentifier] NULL, 
    [Curso] [uniqueidentifier] NULL, 
    [Duracion] [int] NOT NULL, 
    [Meta] [int] NOT NULL, 
    [Estado] [int] NOT NULL, 
    [FechaFinalizacion] [datetime] NULL, 
    [Tutor] [uniqueidentifier] NULL, 
    [FechaInicio] [datetime] NOT NULL, 
    [MotivoRetiro] [varchar](50) NULL, 
    [FechaIngresoTaller] [datetime] NOT NULL, 
    [FechaMatricula] [datetime] NOT NULL, 
    [TiempoTranscurrido] [int] NOT NULL, 
PRIMARY KEY CLUSTERED 
(
    [Id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 

SET ANSI_PADDING OFF 
GO 

**ALTER TABLE [dbo].[simte_PlanDeEstudio] WITH CHECK ADD CONSTRAINT [FK_simte_PlanDeEstudio_simte_Curso] FOREIGN KEY([Curso]) 
REFERENCES [dbo].[simte_Curso] ([Id]) 
GO 
ALTER TABLE [dbo].[simte_PlanDeEstudio] CHECK CONSTRAINT [FK_simte_PlanDeEstudio_simte_Curso] 
GO** 

**ALTER TABLE [dbo].[simte_PlanDeEstudio] WITH CHECK ADD CONSTRAINT [FK_simte_PlanDeEstudio_simte_Estudiante] FOREIGN KEY([Estudiante]) 
REFERENCES [dbo].[simte_Estudiante] ([Id]) 
GO 
ALTER TABLE [dbo].[simte_PlanDeEstudio] CHECK CONSTRAINT [FK_simte_PlanDeEstudio_simte_Estudiante] 
GO** 

ALTER TABLE [dbo].[simte_PlanDeEstudio] WITH CHECK ADD CONSTRAINT [FK_simte_PlanDeEstudio_simte_Usuario] FOREIGN KEY([Tutor]) 
REFERENCES [dbo].[simte_Usuario] ([Id]) 
GO 

ALTER TABLE [dbo].[simte_PlanDeEstudio] CHECK CONSTRAINT [FK_simte_PlanDeEstudio_simte_Usuario] 
GO 

ALTER TABLE [dbo].[simte_PlanDeEstudio] ADD CONSTRAINT [DF_simte_PlanDeEstudio_Id] DEFAULT (newid()) FOR [Id] 
GO 

前两个约束条件(“simte_Curso”和“simte_Estudiante”)是出现在SQL Management Studio中图,但不传递到模型。

最后一个(“simte_Usuario”)位于数据库关系图中并传递给模型。

的“simte_curso”实体并没有外键和“simte_usuario”只有一个关系到另一个表

我希望它可能是外键更明确

创建脚本“simte_curso”和对于“simte_Usuario”是:

**CREATE TABLE [dbo].[simte_Curso](
    [Id] [uniqueidentifier] NOT NULL, 
    [Nombre] [varchar](50) NOT NULL, 
    [Orden] [int] NOT NULL, 
    [UltimoCurso] [bit] NULL, 
PRIMARY KEY CLUSTERED 
(
    [Id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY]** 



**CREATE TABLE [dbo].[simte_Usuario](
    [Id] [uniqueidentifier] NOT NULL, 
    [UsuarioOrchard] [int] NOT NULL, 
    [TipoDeUsuario] [varchar](10) NOT NULL, 
    [Nombres] [varchar](50) NOT NULL, 
    [Apellidos] [varchar](50) NOT NULL, 
    [Documento] [varchar](50) NULL, 
    [TelefonoMovil] [varchar](50) NULL, 
    [FechaDeNacimento] [datetime] NULL, 
    [CorreoElectronico] [varchar](50) NULL, 
    [sexo] [bit] NULL, 
PRIMARY KEY CLUSTERED 
(
    [Id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 
GO 
SET ANSI_PADDING OFF 
GO 
ALTER TABLE [dbo].[simte_Usuario] WITH CHECK ADD CONSTRAINT [FK_simte_Usuario_Orch_Orchard_Users_UserPartRecord] FOREIGN KEY([UsuarioOrchard]) 
REFERENCES [dbo].[Orch_Orchard_Users_UserPartRecord] ([Id]) 
GO 
ALTER TABLE [dbo].[simte_Usuario] CHECK CONSTRAINT [FK_simte_Usuario_Orch_Orchard_Users_UserPartRecord] 
GO** 
+1

哪些关系哪里没有复制?你的数据模型是什么样的? – c0deNinja 2012-04-18 16:52:58

+0

我同意@ c0deNinja在这里 - 更多的信息会有帮助。 – JasCav 2012-04-18 17:19:51

+0

你有没有得到解决这个问题,我有完全相同的问题。 – StackTrace 2013-08-22 07:00:31

回答

0

通常这是一个表示外键约束尚未在数据库中设置的标志。你能否确认这些关系实际上是在数据库中,而不仅仅是代表外键的列名?

+0

是的,所有外键都是在数据库中创建的,当我在管理工作室中看到数据库关系图时,会显示所有关系。我也检查了数据库的创建脚本,所有的关系都在那里 – Miguel 2012-04-18 17:05:36

0

如果您没有在相关表中设置主键,也可能发生这种情况。我在VS 2013中针对SQL Server 2008 R2创建了一个带有实体框架版本6的edm。这些关系是在数据库中建立的,但在EDM中没有出现在几张表中。将主键字段设置为SQL Server中的主键后,EDM将正确更新。

0

您可以在“模型浏览器”中添加一个新图并添加关联,您必须点击鼠标右键并选择“添加到图”。之后,表格和关系将显示在模型中。