를 생성하지 나는 다음과 같은 객체 모델이 있습니다엔티티 프레임 워크 질의는
[Table("APA_QuestionProduct")]
public class QuestionProduct
{
[Key, ForeignKey("Question"), Column(Order=0)]
public int QuestionID { get; set; }
[ForeignKey("QuestionID")]
public Question Question { get; set; }
[Key, ForeignKey("Product"), Column(Order=1)]
public int ProductID { get; set; }
[ForeignKey("ProductID")]
public Product Product { get; set; }
}
테이블 :
USE [qbm]
GO
/****** Object: Table [dbo].[APA_QuestionProduct] Script Date: 5/21/2013 6:52:46 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[APA_QuestionProduct](
[QuestionID] [int] NOT NULL,
[ProductID] [int] NOT NULL,
CONSTRAINT [PK_APA_QuestionProduct] PRIMARY KEY CLUSTERED
(
[QuestionID] ASC,
[ProductID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[APA_QuestionProduct] WITH CHECK ADD CONSTRAINT [FK_APA_QuestionProduct_APA_Product] FOREIGN KEY([ProductID])
REFERENCES [dbo].[APA_Product] ([ProductID])
GO
ALTER TABLE [dbo].[APA_QuestionProduct] CHECK CONSTRAINT [FK_APA_QuestionProduct_APA_Product]
GO
ALTER TABLE [dbo].[APA_QuestionProduct] WITH CHECK ADD CONSTRAINT [FK_APA_QuestionProduct_APA_Question] FOREIGN KEY([QuestionID])
REFERENCES [dbo].[APA_Question] ([QuestionID])
GO
ALTER TABLE [dbo].[APA_QuestionProduct] CHECK CONSTRAINT [FK_APA_QuestionProduct_APA_Question]
GO
그래서 테이블 뒤에 (또한 기본 키입니다) 단지 2 외래 키가 있습니다. 내 질문 객체에는 제품 목록이 있습니다. 나는 제품 ID 외래 키를 업데이트하고 어떤 쿼리/업데이트는 DB에서 생성되지 않은 상황에 'SaveChanges를'을 호출 할 때 : 나는 쿼리를 확인하는 InteliTrace에보고
question.Products[1].ProductID = 4;
db.Entry(question.Products[1]).State = EntityState.Modified;
db.SaveChanges();
하지만 쿼리는 내 QuestionProduct 테이블 경우에도 이상이라고하지 않습니다 내 QuestionProduct 개체가 변경되었습니다. 테이블이 업데이트되지 않는 이유는 무엇입니까? 오류가 발생하지 않습니다.