POC 프로젝트에서 Entity Framework를 사용하고 있습니다. 내 데이터베이스에서 나는엔티티 프레임 워크 다 대다수 CRUD
Category<-------CategoryProduct ------->Product
은 (어디 테이블을 조인 모델의 엔티티입니다.)이
내가/삽입/업데이트를 선택 할 수있는 방법 또는 삭제 이것에?
POC 프로젝트에서 Entity Framework를 사용하고 있습니다. 내 데이터베이스에서 나는엔티티 프레임 워크 다 대다수 CRUD
Category<-------CategoryProduct ------->Product
은 (어디 테이블을 조인 모델의 엔티티입니다.)이
내가/삽입/업데이트를 선택 할 수있는 방법 또는 삭제 이것에?
은 단순히 ... EF의는 기본적으로 CategoryProduct
엔티티를 생성하지 않습니다, 대신 사용 관계를 삭제/만들어야합니다 해당 테이블을 조작하는 두 FKS Product
에 하나 Category
한 구성되어 있습니다 Product.Categories
또는 Category.Products
컬렉션
e.e.
var pc = from c in ctx.Categories
from p in c.Products
select new {CategoryID = c.ID, ProductID = p.ID};
을 그리고 업데이트하지 않습니다
product.Categories.Remove(category); // or visa versa
그 테이블의 행을 얻기 위해, 즉 테이블을 조회하려면 다음 행을 제거하려면
product.Categories.Add(category); // or category.Products.Add(product);
: 행을 추가합니다 왜냐하면 PK는 변경 될 수 없기 때문에 모든 열입니다. 즉 행의 열이 업데이트 될 수 없기 때문에 행 자체를 업데이트 할 수 없습니다 (물론 삭제 제외).
희망이
알렉스 제임스
은 내가 생각할 수있는 두 가지 방법, 적어도 두 가지가 있습니다
옵션 2가 더 좋지만 현재 CategoryProduct와 연결된 다른 데이터가있는 경우 옵션 2가 작동하지 않는다는 제한이 있습니다. CategoryProduct
테이블을 가정
감사를하는 데 도움이됩니다. 그것이 내가 한 일입니다. 중산층을 없앴습니다. 모델에서 Many To Many이고 CategoryProduct는 없어졌습니다. – Shuaib
감사합니다. Alex. 그러나 제품의 컬럼을 어떻게 끝낼 수 있습니까? 이 오류가 발생합니다 : IEntityChangeTracker의 여러 인스턴스에서 엔티티 개체를 참조 할 수 없습니다. 코드는 다음과 같습니다 공공 정적 INT 업데이트 (제품 C)를 사용하여 { (SimvideoEntities CTX = 새로운 SimvideoEntities()) { ctx.Attach (C); Common.SetModified (ctx, c); return ctx.SaveChanges (true); } } – Shuaib
알았어, 업데이트 및 삭제 작업이 있지만 먼저 컨텍스트에서 레코드를 가져온 다음 저장/삭제해야합니다. – Shuaib
많은 도움을 주신 Alex에게 감사드립니다.좋은 일을 계속 지켜라. – Shuaib