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 には、テーブル内の各行を一意に識別する方法が必要です。データベース設計では、行の識別は主キー (モデルのエンティティ キー) によって行われるため、それらをテーブルに追加する必要があります。そうしないと、テーブルを EF モデルに追加する際に問題が発生します。エンティティがエンティティ キーを自動的に推測できる場合があります (たとえば、ビューからモデルを生成するときによく発生します)。また、ビューの場合、この問題を解決する一般的な方法は、ISNULL ステートメントを使用することです。

ただし、テーブルの場合、このテーブルをモデルに追加するには、null 非許容の識別フィールド、より良い - 主キー (db 設計パターンに準拠するため) が必要です。

于 2013-08-14T08:08:57.067 に答える