기본값이있는 Null 허용 필드가 많은 기존 데이터베이스에 대해 EF (v5)를 사용하고 있습니다.엔티티 프레임 워크 및 null 가능 필드
새 엔터티를 삽입 할 때 null 가능 필드에 값이 지정되지 않은 경우 null이 삽입됩니다 (데이터베이스 기본값은 사용되지 않음). 그것은 EF가 실제로 null인지 아닌지를 결정할 수 없다는 점에서 의미가 있습니다.
그러나 필드를 StoreGeneratedPattern = Computed
으로 설정하면 삽입시 기본값이 사용되지만 인 경우은 기본값을 사용합니다. 내 자신의 가치를 (심지어 Update
에) 제공한다면, 그 값은 무시 될 것 같습니다.
기본 데이터베이스를 변경하지 않고이 시나리오를 사용할 수있는 방법이 있습니까?
프로세스의 예 I는 다음 해요 :이 경우
var myEntity = databaseSession.MyEntities.Single(x => x.EntityID = 123);
myEntity.SomeField = 1;
databaseSession.SaveChanges();
SomeField
유형 int?
이며, I는 SQL 쿼리가 실행되는 것을 볼 수 있습니다 EFProf를 사용 StoreGeneratedPattern = Computed
로 설정 :
update [dbo].[MyEntities]
set @p = 0
where ([EntityID] = 123 /* @0 */)
추가 :
는 업데이트 문이 테이블의 모든 필드를 업데이트가 생성되도록합니다하지만 결정적으로, 그것은 StoreGeneratedPattern = Computed
EF 버전은 무엇입니까? – msarchet
@msarchet - v5.0 – ChadT
값을 업데이트하고 db – msarchet