2013-08-14 3 views
1

mvc 면도기에서 엔티티 프레임 워크를 사용합니다. edmx는 모든 널 (NULL) 허용 컬럼이있는 테이블을 허용하지 않습니다. 데이터베이스에서 모델을 업데이트 할 때 엔티티 프레임 워크에서 테이블이 추가되지 않습니다.기본 키 및 notnull 값이없는 엔티티 프레임 워크 및 테이블

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 

답변

2

글쎄, Entity Framework에는 테이블의 각 행을 고유하게 식별하는 방법이 필요합니다. db 디자인에서 행 식별은 기본 키 (모델의 Entity Key)를 통해 수행되므로 테이블에 추가해야합니다. 그렇지 않으면 테이블을 EF 모델에 추가 할 때 문제가 발생합니다. 엔티티는 엔티티 키를 자동으로 추론 할 수 있습니다 (예를 들어 모델을 뷰에서 생성 할 때 자주 발생합니다). 또한,보기,이 문제를 극복하는 일반적인 방법은 ISNULL 문을 사용하는 것입니다.

테이블의 경우 -이 테이블을 모델에 추가하려면 nullable ID 필드, 더 나은 기본 키 (db 디자인 패턴을 준수)가 있어야합니다.

+0

감사합니다. 따라서 제공 한 예제 테이블을 엔티티에 추가 할 수 없습니까? – gs11111

+0

아니요. 가장 좋은 해결책은 id를 기본 키 (이 열을 자동으로 채울 수 없게 만듭니다)로 표시하거나, integer, autoincrement 및 기본 키와 같은 entity_id와 같은 하나 이상의 열을 추가하는 것입니다. – Dmytro

관련 문제