다른 ID가있는 데이터베이스로 데이터를 가져올 때 ID가 다시 만들어지는 문제가 있습니다. 모든 데이터가 올바르게 가져 오기 때문에 ID (ID 열)가 가져 오기 항목이어야합니다.ID 일시 중지 - Entity Framework 4.1 코드 우선
이 모델에는 두 개의 키가 있습니다. ID 및 신원. ID는 기본적으로 다른 데이터 소스의 고유 한 인스턴스 이름이므로 고유 한 조합이 만들어집니다.
modelBuilder.Entity<Observation>().HasKey(m => new {m.Instance, m.Id});
modelBuilder.Entity<Observation>().Property(m => m.Id).HasDatabaseGeneratedOption(
DatabaseGeneratedOption.Identity);
클래스는 다음과 같습니다 :
이
모든 클래스 DbContext에서입니다 DatabaseContext에 OnModelCreating를 통해 설정됩니다 데이터베이스 컨텍스트는이 ASP 한 번 만들어public class Observation
{
public string Instance { get; set; }
public int Id { get; set; }
...
}
Ninject .Net MVC 3 응용 프로그램.
나는 새 항목을 추가하는 동안 정체성을 설정하는 SQL 명령을 사용하여 시도하지만 성공 :CREATE TABLE [dbo].[Observations](
[Instance] [nvarchar](128) NOT NULL,
[Id] [int] IDENTITY(1,1) NOT NULL,
...
PRIMARY KEY CLUSTERED
(
[Instance] ASC,
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
하나를 : 생성 된 테이블 구조는 MSSQL에서 다음과 같습니다
public void SetIdentiyObservation(bool isOn)
{
var state = isOn ? "ON" : "OFF";
_context.Database.SqlQuery<Observation>("SET IDENTITY_INSERT Observation @state", new SqlParameter("state", state));
}
이것에 대한 도움을 주시면 감사하겠습니다 :)