0

エンティティ フレームワークに問題があります

問題は非常に単純です。SQL Server 2008 にデータベースがあります。Visual Studio 2010 プロジェクト (ADO.NET Entity Data Model を使用) で edmx ファイルを作成するためにテーブルをインポートすると、すべての関係がモデルに複製されるわけではありません。 、それらのほんの一部です。モデルの再作成、更新を削除しようとしましたが、まったく新しいプロジェクトでも同じ問題が発生します....

例えば:

このエンティティは「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

最初の 2 つの制約 ( "simte_Curso" と "simte_Estudiante" ) は、SQL Management Studio の図に表示されますが、モデルには渡されません。

最後のもの ( "simte_Usuario" ) はデータベース ダイアグラムにあり、モデルに渡されます。

「simte_curso」エンティティには外部キーがなく、「simte_usuario」には別のテーブルに関連する外部キーが 1 つだけあります

より明確になることを願っています

「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**
4

3 に答える 3

0

これは、関連するテーブルに主キーが設定されていない場合にも発生する可能性があります。SQL Server 2008 R2 に対して VS 2013 でエンティティ フレームワーク バージョン 6 を使用して edm を作成しました。リレーションシップはデータベースで設定されましたが、いくつかのテーブルの EDM には表示されませんでした。SQL Server で主キー フィールドを主キーとして設定すると、EDM が正しく更新されました。

于 2014-12-19T22:53:39.540 に答える
0

通常、これは外部キー制約がデータベースに設定されていないことを示しています。外部キーを表す列名だけでなく、関係が実際にデータベースにあることを確認できますか?

于 2012-04-18T16:53:22.920 に答える
0

「モデル ブラウザ」に新しいダイアグラムを追加し、関連付けを追加できます。マウスの右ボタンをクリックして、「ダイアグラムに追加」を選択する必要があります。その後、テーブルと関係がモデルに表示されます。

于 2017-06-10T05:26:21.610 に答える