내 문제와 관련하여 조금 수색했지만 도움이 될만한 것을 찾을 수 없습니다. 고유 인덱스에 대한 Entity Framework - UPSERT
그래서 내 문제는/dilema는 다음과 같이 유지 :insert into t(a,b,c) values(1,1,1) on duplicate keys update b=values(b),c=values(c);
하고 교체하는 데 사용되는 대체 형식 : 내가 MySQL 데이터베이스가이 형식을 사용하여 동일한 쿼리에 삽입/업데이트에 사용할 수있는 고유 인덱스 시스템을 가지고 있음을 알고 그 색인에 의한 기존 기록.
내가 MSSQL에서 본 유일한 비슷한 물건이
merge
하지만 난 정말 모든과 ...
삽입하거나 업데이트 결국 기반으로 고유 인덱스되지 않습니다하는 쿼리를 확인 그것을 좋아하지 않아이다 정직하게
그래서 Entity Framework로 mysql 고유 UPSERT를 에뮬레이션 할 수 있습니까? 이것은 내 주요 문제입니다 ...
엔티티 집합에서 레코드를 가져 오지 않고 가능한 삽입 또는 업데이트를 위해 null인지 아닌지를 확인하지 않고 의미합니다.
알겠습니까? 안 그래요?
[Table("boats")]
public class Boat
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int id { get; set; }
[MaxLength(15)]
[Index("IX_ProviderBoat",1,IsUnique=true)]
public string provider_code { get; set; }
public string name { get; set; }
[Index("IX_ProviderBoat", 3, IsUnique = true)]
[MaxLength(50)]
public string model { get; set; }
[Index("IX_ProviderBoat", 2, IsUnique = true)]
[MaxLength(15)]
[Key]
public string boat_code { get; set; }
public string type { get; set; }
public int built { get; set; }
public int length { get; set; }
}
그래서 나는 내 IX_ProviderBoat에 따라/삽입을 업데이트 할 : 모든 힌트는 ... 내가 this을보고 있지만, 버전 6으로 표시되지 않습니다
기업의
예를 유용 할 수 있습니다 고유 인덱스는 EF 사용
데이터 모델이 EF에 적합하지 않습니다. '보트 '테이블에 3 개의 고유 한 키와 함께'보트 .id '가 있어야합니까? 'Boat.provider_code'를 기본 키로 사용하지 않으시겠습니까? 또한,'AddOrUpdate()'는 EF6에서 사용할 수 있습니다. – wahwahwah
AddOrUpdate는 EntityFramework6에서 사용할 수 있습니다. http://stackoverflow.com/questions/22287852/entityframework-6-addorupdate-not-working-with-compound-or-composite-primary-key –
@wahwahwah 1) 이드와 같은 다른 오버로드로 확인해야 할 수도 있습니다. 단지 식별자 (기본 키가 아님)입니다. 2) AddOrUpdate는 내 6.0.0.0 EF 버전에서 가시화되지 않습니다. 3) provider_code는 기본 키이며 고유 인덱스 부분 그룹입니다. – HellBaby