1

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

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
4

1 回答 1

2

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

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

于 2013-08-14T08:08:57.067 回答