"사이트"에 대한 외래 키 관계가있는 테이블 "위치"가 있습니다. 나는 위치 siteid를 설정 한Linq-to-sql POCO - NULL 연결로 인해 삽입이 실패합니다.
An attempt was made to remove a relationship between a Site and a Location. However, one of the relationship's foreign keys (Location.SiteId) cannot be set to null.
: 나는이 오류가 표시 위치 행을 저장하려고하면 그러나
Location l = new Location
{
Description = text,
FloorId = 0,
IsCurrentLoc = false,
LastMove = DateTime.Now,
MoveId = 0,
SiteId = 1
};
LocationTable.InsertOnSubmit(l);
LocationTable.Context.SubmitChanges();
: 나는 시도하고 새 위치 레코드를 추가하는 SQL에 LINQ를 사용하고 있습니다 (사이트 ID 1이 데이터베이스에 있음).
감사 this 포스트 I에 ... 그래서 이런 일이 발생하지만, 그것을 해결하기 위해 어떻게하지 왜 알 -
[Table(Name = "Locations")]
public class Location
{
private List<InstallLocation> _InstallLocations = new List<InstallLocation>();
[Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
internal int LocationId { get; set; }
[Association(ThisKey = "SiteId", OtherKey = "SiteId", IsForeignKey = true)]
public Site Site
{
get;
set;
}
[AssociationAttribute(ThisKey = "LocationId", OtherKey = "LocationId")]
public List<InstallLocation> InstallLocations
{
get
{
return this._InstallLocations;
}
set
{
this._InstallLocations = value;
}
}
}
편집 :
내 LINQ - 투 - SQL 클래스는 다음과 같이 이제 무슨 일이 일어나는지 보자. "사이트"속성은 SiteId를 통해 선전을합니다. Site는 아무것도 설정하지 않으므로 SiteId를 null로 설정하려고 시도합니다. 허용되지 않으므로 실패합니다.
내가 잘 이해할 수없는 것은이 작업 방법입니다. 나는 데이터베이스에서 사이트 엔티티를로드하고 사이트를 설정하기 위해 DB 히트를 사용하고 싶지 않습니다. 나는 SiteId를 가지고 있으며 그것은 나의 "위치"를 유지하기 위해 내가해야 할 모든 것입니다.
아이디어가 있으십니까?
감사합니다.하지만 해당 게시물을 발견하고 위치 클래스 SiteId 연결에 "DeleteOnNull = true"를 추가했습니다. 아무런 차이가 없었습니다 –
고마워요,이 솔루션은 나를 위해 일했습니다! 나는 화제 시동기와 정확하게 동일한 문제가 있었다! 그러나 받아 들여진 해결책은 저를 위해 작동하지 않았습니다. –