레거시 POCO 모델로 레거시 데이터베이스를 매핑하려고합니다. Entity Framework를 염두에두고 개발하지 않은 데이터베이스와 모델에는 그 사이에 약간의 차이점이 있습니다.Entity Framework 코드 우선 - nullable이 아닌 형식의 기본값
제가 직면 한 과제는 가능한 한 덜 침략 적으로 작동하도록 만들고 싶습니다 (데이터베이스의 코드 나 모델을 터치하고 싶지 않음). 의존하는 코드가 너무 많기 때문입니다.
레거시 모델에서 POCO를 다시 사용하여 코드 첫 번째 방법을 사용하여 엔티티를 매핑하려고했습니다. 모든 nullable numeric 열은 프리미티브 Int32 (nullable이 아님)로 선언 된 속성에 매핑된다는 사실을 발견 한 이후로 모든 것이 작동하는 것처럼 보였습니다.
CREATE TABLE [dbo].[SomeTable](
[Id] [int] NOT NULL,
[Descrip] [nvarchar](50) NULL,
[SomeNumericCol] [int] NULL,
CONSTRAINT [PK_SomeTable] PRIMARY KEY CLUSTERED
(
[Id] ASC
)) ON [PRIMARY]
와 해당 POCO :
public class SomeTable
{
public Int32 Id { get; set; }
public string Descrip { get; set; }
public Int32 SomeNullableCol { get; set; }
}
당신이 열 SomeNullableCol와 대응 사이에 차이가 나타날 수 있습니다 예를 들어
,이 전 테이블이 있다고 가정 해 보자 특성의 마지막 유형은 null을 허용하지 않는 원시 int이므로
SomeNullableCol의 형식을 nullable int (Int32?)로 변경하지 않고이 매핑을 작동시킬 수있는 해킹이 있습니까? 가능한 경우 클래스의 코드를 건드리지 마십시오.
감사합니다.
아니요, 저는 말할 수 없습니다. int가 될 속성에 의존하는 코드가 너무 많아서 nullable 유형으로 변경할 수 없습니다. 많은 * 속성의 변경도 ... – Maxolidean