2010-05-31 4 views
4

두 개체 (FooBar) 사이에 1 : 0 또는 1 : 1 관계가 있습니다. 따라서 Foo는 Bar.ID에 대한 nullable 외래 키 참조와 "1"측을 적용하는 고유 인덱스 (nullbusted)를가집니다. Bar.ID는 int이므로 Foo.BarID는 nullable int입니다.Nullable 일대일 관계 LINQ-to-SQL의 정수 키와의 관계

이 문제는 .NET 데이터 형식에서 SQL 데이터 형식으로의 LINQ-to-SQL DBML 매핑에서 발생합니다. int은 .NET에서 null 입력 가능 유형이 아니므로 Nullable<int>으로 묶습니다. 그러나,이 int와 동일한 유형하지 않고, 내가 그들 사이의 OneToOne 협회를 만들려고 할 때 너무 비주얼 스튜디오 나에게이 오류 메시지를 제공합니다 :

는 협회 "Bar_Foo"를 만들 수 없습니다. 속성의 유형이 "ID", "BarID"와 일치하지 않습니다.

이 방법이 있습니까?

+0

같은 문제가 있습니다. 해결책을 찾았습니까? – Denis

답변

2

지금까지 확실히 못생긴 CanBeNull="true"에 Bar.ID (기본 키)를 설정하여이 문제를 해결 근무했습니다. 더 나은 해결책을 찾고 싶습니다.

+0

는 확실히 우리가 정기적으로 DBML 파일을 새로 고침으로이 작업을 수행하지 않으려는 덮어 얻을 것입니다. 혹시 더 나은 방법을 찾았습니까? 나는 오래 전에 찾고 중지하지만 – JumpingJezza

+0

아니는 결코하지 않았다. 아마도이 변경 사항을 다시 구현하도록 dbml 새로 고치기 도구를 설정할 수 있습니까? –