实体框架和表没有主键而不是null值

时间:2013-08-14 07:48:36

标签: entity-framework database-design edmx

我在mvc razor中使用实体框架。 edmx不接受包含所有allow nulls列的表。 当我从数据库更新模型时,表格没有被添加到实体框架中。

USE [exampledb]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Table_1](
    [id] [int] NULL,
    [name] [varchar](50) NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

1 个答案:

答案 0 :(得分:2)

嗯,实体框架需要一种方法来唯一识别表中的每一行。由于在db设计中行标识是通过主键(模型中的实体键)完成的,因此您需要将它们添加到表中,否则您将在将表添加到EF模型时遇到问题。有时实体可以自动推断实体键(例如,它通常在您从视图生成模型时发生)。另外,对于视图,克服此问题的常用方法是使用ISNULL语句。

但是对于表 - 您必须具有不可为空的标识字段,更好 - 主键(以符合数据库设计模式),以便将此表添加到您的模型中。