数据库中有3表Person、Student、Worker。代码如下:

]

 

现在在VS里建个ADO.NET Entity Data Model,就叫默认的Model1.edmx好了,操作如下:

1、建立Model1.edmx时,在数据库中只选择Person表,完成Model1.edmx

2、编译,通过

3、现在从数据库中更新,把Student和Worker都添加进来,这是会看到设计器自动把实体和关系都一并生成出来,还算蛮聪明的

4、编译,还是通过

5、Bug开始来了,把Student和Worker实体删除

6、编译,出错,我在中文版和英文版都试过(打正式sp1的,team system),错误如下:

Error    1    Error 3013: Problem in Mapping Fragment starting at line 144: Missing table mapping: Foreign key constraint 'FK_Student_Person' from table Student (PersonID_FK) to table Person (PersonID): no mapping specified for the table Student.
Error    2    Error 3013: Problem in Mapping Fragment starting at line 144: Missing table mapping: Foreign key constraint 'FK_Worker_Person' from table Worker (PersonID_FK) to table Person (PersonID): no mapping specified for the table Worker.

 

按照微软讲师王然在webcast的说法,EF有时没有自动把后台代码删除完整,当时那webcast演示也是出错所以终止的。但他说是因为他的是beta版的原因。但我这几天测试了N次,发现在sp1正式版也出现这情况……郁闷

 

大家也出现过这现象吗?

调查一下,EF的Bug?    [Role] [nvarchar](50NULL, 调查一下,EF的Bug? CONSTRAINT [PK_Person] PRIMARY KEY CLUSTERED  调查一下,EF的Bug?( 调查一下,EF的Bug?    [PersonID] ASC 调查一下,EF的Bug?)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ONON [PRIMARY] 调查一下,EF的Bug?ON [PRIMARY] 调查一下,EF的Bug? 调查一下,EF的Bug?USE [test] 调查一下,EF的Bug?GO 调查一下,EF的Bug?SET ANSI_NULLS ON 调查一下,EF的Bug?GO 调查一下,EF的Bug?SET QUOTED_IDENTIFIER ON 调查一下,EF的Bug?GO 调查一下,EF的Bug?CREATE TABLE [dbo].[Student]( 调查一下,EF的Bug?    [StudentID] [int] IDENTITY(1,1NOT NULL, 调查一下,EF的Bug?    [PersonID_FK] [int] NOT NULL, 调查一下,EF的Bug?    [ClassID_FK] [int] NOT NULL, 调查一下,EF的Bug?    [Title] [nvarchar](50NULL, 调查一下,EF的Bug? CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED  调查一下,EF的Bug?( 调查一下,EF的Bug?    [StudentID] ASC 调查一下,EF的Bug?)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ONON [PRIMARY] 调查一下,EF的Bug?ON [PRIMARY] 调查一下,EF的Bug? 调查一下,EF的Bug?GO 调查一下,EF的Bug?ALTER TABLE [dbo].[Student]  WITH CHECK ADD  CONSTRAINT [FK_Student_Class] FOREIGN KEY([ClassID_FK]) 调查一下,EF的Bug?REFERENCES [dbo].[Class] ([ClassID]) 调查一下,EF的Bug?ON UPDATE CASCADE 调查一下,EF的Bug?ON DELETE CASCADE 调查一下,EF的Bug?GO 调查一下,EF的Bug?ALTER TABLE [dbo].[Student] CHECK CONSTRAINT [FK_Student_Class] 调查一下,EF的Bug?GO 调查一下,EF的Bug?ALTER TABLE [dbo].[Student]  WITH CHECK ADD  CONSTRAINT [FK_Student_Person] FOREIGN KEY([PersonID_FK]) 调查一下,EF的Bug?REFERENCES [dbo].[Person] ([PersonID]) 调查一下,EF的Bug?ON UPDATE CASCADE 调查一下,EF的Bug?ON DELETE CASCADE 调查一下,EF的Bug?GO 调查一下,EF的Bug?ALTER TABLE [dbo].[Student] CHECK CONSTRAINT [FK_Student_Person] 调查一下,EF的Bug?USE [test] 调查一下,EF的Bug?GO 调查一下,EF的Bug?SET ANSI_NULLS ON 调查一下,EF的Bug?GO 调查一下,EF的Bug?SET QUOTED_IDENTIFIER ON 调查一下,EF的Bug?GO 调查一下,EF的Bug?CREATE TABLE [dbo].[Worker]( 调查一下,EF的Bug?    [WorkerID] [int] IDENTITY(1,1NOT NULL, 调查一下,EF的Bug?    [PersonID_FK] [int] NOT NULL, 调查一下,EF的Bug?    [Company] [nvarchar](50NOT NULL, 调查一下,EF的Bug? CONSTRAINT [PK_Worker] PRIMARY KEY CLUSTERED  调查一下,EF的Bug?( 调查一下,EF的Bug?    [WorkerID] ASC 调查一下,EF的Bug?)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ONON [PRIMARY] 调查一下,EF的Bug?ON [PRIMARY] 调查一下,EF的Bug? 调查一下,EF的Bug?GO 调查一下,EF的Bug?ALTER TABLE [dbo].[Worker]  WITH CHECK ADD  CONSTRAINT [FK_Worker_Person] FOREIGN KEY([PersonID_FK]) 调查一下,EF的Bug?REFERENCES [dbo].[Person] ([PersonID]) 调查一下,EF的Bug?ON UPDATE CASCADE 调查一下,EF的Bug?ON DELETE CASCADE 调查一下,EF的Bug?GO 调查一下,EF的Bug?ALTER TABLE [dbo].[Worker] CHECK CONSTRAINT [FK_Worker_Person] 调查一下,EF的Bug?

相关文章:

  • 2021-06-02
  • 2022-03-02
  • 2021-12-03
  • 2021-07-31
  • 2022-12-23
  • 2022-12-23
  • 2021-10-16
  • 2021-05-23
猜你喜欢
  • 2021-09-21
  • 2021-06-21
  • 2022-12-23
  • 2021-09-01
  • 2021-08-07
  • 2021-05-22
  • 2021-10-15
相关资源
相似解决方案