현재 웹 서비스를 설계하고 있으므로 실제 코드가 없지만 데이터베이스와 응용 프로그램 디자인에 잠재적으로 영향을 미칩니다.C# ADO.NET 새로운 자동 증가 기본 키의 값을 결정 하시겠습니까?
bigint의 기본 키가 자동 증가하는 데이터베이스 테이블 (SQL Server에서)을 사용할 계획입니다. 이제 ADO.NET에서 테이블에 새 레코드를 추가 할 때이 필드를 설정하지 않을 것이라고 가정합니다. 내가 알아야 할 것은 방금 추가 된 ID가 무엇인지 어떻게 알 수 있는가입니다. 물론 그 필드에서 선택된 MAX를 수행 할 수 있지만 실제로 ADO.NET은 새로운 ID의 값을 반환하여 오버 헤드를 절약 할 수 있습니까? 예를 들어
,이 같은 일부 코드가 있다면 : 표에 자동 증가 PK는 ID라는 있었다면
using (MyEntities context = new MyEntities())
{
context.Table1.AddObject(new Table1()
{
StringColumn1 = "some value",
StringColumn2 = "some value"
});
context.SaveChanges();
}
, 어떻게 난 그냥 추가 된 값을 알고 있습니까? 엔티티 프레임 워크를 사용
의 ID를 엔티티 프레임 워크를 사용하여이인가 얻을? 그렇다면 : EF는 삽입 작업을 할 때 자동으로 ID를 업데이트해야합니다. 원시 ADO.NET을 사용한다면 - INSERT 명령문의'OUTPUT' 절을 사용하거나'INSERT' 바로 다음에 호출되는'SCOPE_IDENTITY()'를보십시오 (같은 SQL 배치에 있음) –
예 EF를 사용하고 있습니다. @marc_s - 그렇게 할 것입니다. 그것은 문제가되지 않았습니다. 그 가치가 무엇인지 어떻게 알 수 있습니까? – Jonnster
삽입하려고하는 객체에 대한 참조를 유지해야하고'.SaveChanges()'를 호출 한 후 해당 객체에서 ID 속성을 읽을 수 있습니다. –