나는이 속성이있는 객체 :linq2sql 이미지 저장 문제
[Column]
public Binary Image { get; set; }
객체가 모든이가 OK이지만,이 수정 될 때 내가 SubmitChanges에 예외가 처음으로 저장됩니다
를데이터 형식 이미지 및 varbinary (max)는 연산자와 일치하는 에는 호환되지 않습니다.
여기에는 어떤 문제가있을 수 있습니까?
나는이 속성이있는 객체 :linq2sql 이미지 저장 문제
[Column]
public Binary Image { get; set; }
객체가 모든이가 OK이지만,이 수정 될 때 내가 SubmitChanges에 예외가 처음으로 저장됩니다
를데이터 형식 이미지 및 varbinary (max)는 연산자와 일치하는 에는 호환되지 않습니다.
여기에는 어떤 문제가있을 수 있습니까?
예외가 있습니까? 문제는 linq2sql이 실제로 열을 수정하기 전에 열을 수정해야하는지 확인하려고한다는 것입니다. 나는 보통 에 이름이 지정된 UpdateCheck = UpdateCheck.Never
매개 변수를 넣으므로 대개 신경 쓰지 않고 전체 행을 업데이트하는 것이 매우 행복합니다. 내가 항목을 저장할 때 즉, 다음
[Column(UpdateCheck = UpdateCheck.Never)]
은, 난 그냥 이렇게 :
Table<TEntity> da = MyDataContext.Context.GetTable<TEntity>();
if (entity.Id > 0)
da.Attach(entity, true);
else
da.InsertOnSubmit(entity);
da.Context.SubmitChanges();
난 당신이 기본으로 SQL에 LINQ에서 낙관적 Concurreny 동작을 (실행 할 수있다 생각 LINQ to Entities는 같은 방식으로 작동합니다).
달리 언급하지 않는 한, 행을 업데이트하기 직전에 행의 모든 열의 이전 값에 대해 SELECT 문을 실행하여 다른 사람이 변경 사항을 메모리에 유지하는 동안 수정했는지 확인합니다.
그러나 두 바이너리 인스턴스를 비교하는 방법을 알지 못하는 것 같습니다.
, 당신은 두 가지 옵션이 있습니다 동시성
여기에 LINQ to SQL에 대한 documentation for Optimistic Concurrency이 있습니다.
왜 downvote? 이유없이? –
잠시 뒤로 물러나십시오. 어떻게이 변수를 비교하고 있습니까?
이미지의 해시를 계산하고 있습니까? 해시를 비교하는 것은 이미지 바이트를 바이트로 비교하는 것보다 훨씬 낫습니다.
-1 걱정할 필요는 없지만 사용자는 그렇게 할 가능성이 있습니다. –
왜 마크? 대부분의 경우, 그들은 정말로 상관하지 않습니다. 내 경우에는 내 저장 메소드가 확장 메소드이므로 인스턴스가 있어야합니다. 방금 객체를 가져 와서 저장 한 경우 이미 그 행에 동일한 값을 다시 넣으면 아무도 신경 쓰지 않습니다. 모든 엔티티 테이블에 시간 소인 필드를 추가하지 않는 한 더 효과적입니다. –
왜? 사용자가 화면에서 일부 데이터를 가져 와서 해당 데이터로 작업하고 저장합니다. 5 분 후에 그 또는 그녀가 만든 변경 사항이 사라 졌다는 사실이 밝혀졌고 문제가되지 않는다고합니다? 그 사용자는 동의하지 않을 것입니다. –