我在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
答案 0 :(得分:2)
嗯,实体框架需要一种方法来唯一识别表中的每一行。由于在db设计中行标识是通过主键(模型中的实体键)完成的,因此您需要将它们添加到表中,否则您将在将表添加到EF模型时遇到问题。有时实体可以自动推断实体键(例如,它通常在您从视图生成模型时发生)。另外,对于视图,克服此问题的常用方法是使用ISNULL语句。
但是对于表 - 您必须具有不可为空的标识字段,更好 - 主键(以符合数据库设计模式),以便将此表添加到您的模型中。