2012-10-28 4 views
0

문제는 완전히 이해할 수 없기 때문에 적절하지만 지금은 며칠이 걸렸습니다.Entity Framework의 날짜/시간 필드 및 기본값

나는 datetime 필드와 엔티티 프레임 워크를 사용합니다.

시나리오 :

  1. 나는 필드를 설정

    를 계산하기 (databasegenerated 옵션) 나는이 같은 필드를 업데이트하지 못할 :

    db.ComputeUnites.Find(this._ComputeGuid).HeartBeat = DateTime.UtcNow; 
        db.SaveChanges(); 
    
  2. 나는 계산으로 설정하지 않는 경우 , 필수로 설정하십시오. 필드가 설정되지 않은 새 요소를 추가하려고하면 오류가 발생합니다. (이것은 의미가 있지만, 서버에 기본값을 설정하여 (getutcdate()) - 설정하지 않으면 시작될 것입니다.

  3. 나는 기본값으로 설정하려고했습니다. 0 : 00 :. 0 : 000 번 삽입 (정확하게 구문을 기억하지 않는다)

을 내가 것 대신에 0 값이 다시 그때 나는 새 개체를 추가 할 수 있지만 기본 값은 사용되지 않습니다 like : 새로 추가 된 객체에 필드를 설정하지 않으면 기본값이 사용되어야하고 필드를 제공하거나 업데이트하면 내 C# 클래스에서 오는 값을 사용해야합니다 ..

무엇이 누락 되었습니까?

답변

1

내가 원하는 것은 : 새로 추가 된 개체에 필드를 설정하지 않으면 기본값을 사용해야합니다. 필드를 제공하거나 업데이트하면 내 C# 클래스에서 오는 값을 사용해야합니다.

이는 지원되지 않습니다. 생성 된 저장소와 EF에서 데이터베이스에 설정된 값을 사용하지만 응용 프로그램에 설정된 값을 사용하지 않거나 응용 프로그램을 생성하도록 할 수 있으며 EF는 항상 기본 값을 가지므로 데이터베이스에서 기본값을 사용하지 않습니다. 귀하의 응용 프로그램은 서버로 전송됩니다.

가장 간단한 해결 방법은 단순히 직접 응용 프로그램에서 올바른 기본 값을 설정하고 데이터베이스 기본값 저장 패턴 생성 사용하지 마십시오

public class ComputeUnit { 
    ... 

    public ComputeUnit() { 
     HeartBeat = DateTime.UtcNow; 
    } 

    ... 
} 
+0

좋아을, 그럼 난 더 이상 문제가 그것으로 내 머리를 실 거예요. 감사. –