2011-09-19 2 views
1

를 저장하지만 난 점점 계속 :WCF 데이터 서비스 나 WCF를 통해 데이터베이스에 다시 데이터를 저장하기 위해 노력하고있어 데이터/엔티티 문제

Cannot insert the value NULL into column 'Id', table 'ResellerPlatform.dbo.Contacts'; column does not allow nulls. INSERT fails. The statement has been terminated.이 (System.Data.UpdateException)

같은이를 통해 발생

WebGet이 서비스 측 자체에 :

[WebGet] 
public void AddContact() 
{ 
    var Contact = new Models.ResellerPlatform.Contact 
    { 
     Id = Guid.NewGuid(), 
     Name = "Foo" 
    }; 

    base.CurrentDataSource.AddToContacts(Contact); 
    base.CurrentDataSource.SaveChanges(); 
} 

접촉 모델은 아이디 (GUID)과 이름 (문자열)와 기본 엔티티, 아니 관계 또는 아무것도. 여기 내 액세스 규칙을 : 그것은 이드 null이 아니기 때문에 예외를 던지는 유지 이유를 이해할 수없는

Config.SetServiceOperationAccessRule("*", ServiceOperationRights.All); 
Config.SetEntitySetAccessRule("*", EntitySetRights.All); 

. 아이디어, 제안?

+0

SQL Server를 사용하고 있습니까? Id 열이 채워지지 않은 것 같습니다. SQL 프로파일 러를 사용하여 SQL Server로 보내지는 것을 확인할 수 있습니다. –

+0

ID는 어떻게 매핑됩니까? Btw. GET 작업은 응용 프로그램의 데이터를 수정하는 용도로 사용해서는 안됩니다. –

+0

@rudolf_franek, Ladislav Mrnka 예, 알고 있습니다. 난 그냥 디버깅에 사용하기 쉽습니다 :-) SQL 프로파일 러에 좋은 생각이 있지만 그것은 NULL이 될 것으로 의심됩니다. WCF가 그렇게하는 이유는 무엇입니까? – eth0

답변

1

StoreGeneratedPattern을 기본 키에 대해 Guid를 사용할 때 아무 것도 해결하지 못하는 것처럼 보였습니다. EF가 Guid를 기본 키로 처리 할 수 ​​있다고 생각 했습니까?

+1

EF 4는 'StoreGeneratedPattern.Identity'로 GUID를 처리 할 수 ​​있지만 EF 1은 처리 할 수 ​​없습니다. 하지만 데이터베이스 측에서 id 값을 생성해야합니다! 당신은 당신이 그렇게하지 않는다고 말했으므로 당신의 잘못이 있습니다. EF는 데이터베이스에 의해 값이 설정 될 것으로 기대합니다. 내 대답을 보라. – Jan

1

EF가 데이터베이스에서 ID 키 열의 값을 생성 할 것으로 예상하는 것처럼 들립니다.

일반적으로 당신은 옵션이 있습니다

  1. 당신이 그랬던 것처럼 클라이언트 측 (C# 코드)에 ID 값을 생성하고 noneStoreGeneratedPattern 속성을 설정합니다.
  2. 데이터베이스 측에서 id 값을 생성하고 StoreGeneratedPattern 속성을 Identity으로 설정하십시오.

두 번째 옵션 당신은 열고이 작업을 얻을 수있는 XML 편집기에서 edmx 파일을 수정 (자세한 내용은이 blog entry 참조)해야 EF 버전 1에서 지원되지 않습니다.

당신이 한 것은 두 가지 옵션을 혼합 한 것입니다. 클라이언트 코드에서 값을 설정하지만 StoreGeneratedPattern=Identity으로 EF에 값을 생성한다고 알려줍니다.

+0

Id 열은 고유 식별자이거나 기본값이 아닙니다. http://imgur.com/F09bw – eth0

+0

매핑을 확인 했습니까? – Jan

+0

도움이되는 경우 : http://i.imgur.com/bnvg1.png – eth0

관련 문제