使用者:
-VS 2017;
-赢7x64;
-MS Sql Server 2012;
-EntityFramework-6.2.0;
表“ tbl_xx”
CREATE TABLE [dbo]. [Tbl_xx] (
[Field] int NULL
)
ON [PRIMARY]
GO
ALTER TABLE [dbo]. [Tbl_xx] SET (LOCK_ESCALATION = TABLE
)
未添加表。
问题
1.我是否在正确地做所有事情以向模型中添加表?
2.如何在模型中添加表格?
更新_1
我关闭了打开的VS。
没有结果。
更新_2
在表中添加了一个键。
该表开始添加
CREATE TABLE [dbo].[tbl_xx] (
[Field] int NULL,
[id] int NOT NULL,
CONSTRAINT [PK__tbl_xx__3213E83FEB4094A9] PRIMARY KEY CLUSTERED ([id])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
ON [PRIMARY]
)
ON [PRIMARY]
GO
ALTER TABLE [dbo].[tbl_xx] SET (LOCK_ESCALATION = TABLE)
答案 0 :(得分:2)
对于要由EntityFramework生成的类,表/视图需要具有主键列。您确实已经发现了这一点。另外,如果您调查.edmx文件的XML,您会注意到一个注释的部分通知您,EF无法识别该表的主键,因此不会生成任何内容。
使用EF时,我会考虑让所有表的最佳做法是在表上指定IDENTITY
的列PRIMARY KEY
。
对于视图来说,它可能有点复杂,但是您仍然可以调整.edmx文件的XML以指定key
列。
我还建议明确命名所有数据库密钥(主密钥和外部密钥)以及所有将来维护和可移植性的约束-在不同的数据库上生成的名称将有所不同,这可能会导致以后的复杂化。