1

在专注于数据库多年后,我将重返编程领域。我曾经是 VB6 中的一把枪,但 .Net 让我陷入困境。

我正在尝试从已经存在的数据库中构建 MVC 中的 Web 应用程序。我大致遵循这个:http: //msdn.microsoft.com/en-us/data/gg685489.aspx

我正在使用 Visual Web Developer Express 2010 10.0.40219.1 SP1Rel 我不确定如何计算各种模板和插件的版本。

我正在从现有数据库生成实体数据模型。我使用的三个表定义了主键和外键,但是当我导入它时,数据模型中没有创建任何关联

似乎有很多不同的方法来构建支持数据库的 Web 应用程序。如果我更熟悉语法,我现在可以手动编码了。

Q1:知道为什么不创建关联吗?

Q2:您能否验证我需要关联来告诉代码生成器如何将所有内容组合在一起?(即在代码中自动生成适当的方法)。我看不出它会如何工作。

Q3:如果我手动创建关联并构建,我会收到一些错误。似乎创建关联会针对实体('CustomerCustomer_ID)创建一个属性,这需要映射到某些东西。但是,当我按“表映射”时,它不在要映射的列表中,我无法添加它。

Error   1 Error 3004: Problem in mapping fragments starting at line 198:
No mapping       specified for properties Task.CustomerCustomer_ID in Set Tasks.
An Entity with Key (PK) will not round-trip when: Entity is type [zzzz.Task]
Error   2 Error 11009: Property 'CustomerCustomer_ID' is not mapped.

这是我期望会生成关联的两个表的删节 DDL

CREATE TABLE [dbo].[Customers](
    [Customer_ID] [int] IDENTITY(1,1) NOT NULL,
    [Customer_Name] [varchar](50) NOT NULL,
........
....
CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED 
([Customer_ID] ASC))

CREATE TABLE [dbo].[Tasks](
    [Task_ID] [int] IDENTITY(1,1) NOT NULL,
    [TaskType_ID] [int] NOT NULL,
    [Emp_ID] [int] NOT NULL,
    [Customer_ID] [int] NOT NULL,
    [Status_ID] [int] NOT NULL,
    [Task_Desc] [varchar](300) NULL,
.....
..
CONSTRAINT [PK_Tasks] PRIMARY KEY CLUSTERED 
(
    [Task_ID] ASC
)

ALTER TABLE [dbo].[Tasks]  WITH CHECK ADD  CONSTRAINT [FK_Tasks_Customers] 
FOREIGN KEY([Customer_ID])
REFERENCES [dbo].[Customers] ([Customer_ID])
GO
4

1 回答 1

1

如上所述,这就是我解决此问题的方法:

我创建了剩余的缺失关联,如下所示:

  1. 右键单击设计表面,添加关联
  2. 定义关联,给它一个名字,设置正确的基数
  3. UNTICK 'Add foreign key properties the ....' 然后按 OK
  4. 单击工作服务上的关联,然后在属性页面中单击引用约束属性并定义它(主要是您的“查找”端)

感谢您尝试帮助所有人,但我怀疑我的问题可能难以重现。

于 2012-10-01T09:07:45.223 回答