위의 기술을 사용하여 만든 Im은 설계상의 문제입니다.SQL, MVC, Entity Framework
내 DB에 아트웍 테이블이 있으며 장바구니 + CartLine 테이블에 예술 작품 (이제는 디지털 제품이라고 생각합니다)을 추가 할 수있었습니다. 내가 가지고있는 시스템은 미술관과 사용자 계정 등에 미술 작품을 추가하는 데 적합합니다.
이제 고객은 '하드웨어 제품'테이블을 작성하기 위해 '하드웨어 제품'이라는 티셔츠, 머그컵 및 펜 등을 판매하려고합니다.
두 테이블에 두 가지 제품 유형이 있습니다. 나는 HardwareProducts 테이블과 Artwork 테이블 모두에서 PK의 GUID를 사용합니다. 고객이 카트에 항목을 추가하면 CartItems 테이블의 ProductID 열에 GUID가 저장됩니다.
문제는 데이터베이스에서 ORM을 통해 LineItem 개체를 프런트 엔드로 가져올 때 참조 할 테이블을 알 수 없다는 것입니다.
OOP에서 어떻게 Product의 기본 클래스를 얻었는지, 그리고 DigitalProduct 클래스와 HardwareProduct 클래스가 어떻게 변형 되었는지를 볼 수 있습니다. 그러나 SQL Server와 Entity Framework에서이를 모델링하는 방법은 무엇입니까? 방법?
편집 :
이것은 내가 아래의 의견에 순간 덕분에 테스트 응용 프로그램에있는 것입니다. 나를 위해했던 속임수는 Stephane이 지적한 것에 ORM 시뮬레이션을 활용했습니다. 나는 this 우수 기사로 인도합니다. 내 주요 솔루션에 통합하고 난 더 이상 소견이있는 경우 사용자에게 알려줍니다에 대한 생각
int prodCount = _entities.Product.OfType<ArtWork>().Count();
IEnumerable<LineItem> lineItem = _entities.LineItem.Include("Product");
int artWorkCount = lineItem.Select(p => p.Product).OfType<ArtWork>().Count();
ArtWork prod = new ArtWork();
prod.Price = 2;
prod.ProductName = "atlast";
prod.Downloads = 3;
prod.GalleryID = 1;
_entities.AddToProduct(prod);
_entities.SaveChanges();
,하지만 난 모든 좋은 찾고 생각 :
alt text http://img411.imageshack.us/img411/3568/32654541.jpg
이 있습니다 . 주의 말한 Type 열이 실제로 ORM이 제공 한 깨끗한 솔루션 덕분에 실제로 필요하지는 않습니다. Thx 모두
매우 흥미로운 시나리오를 참조하십시오. 나는 해결책을 너무 배우기를 원한다. – Raja
위대한 정보입니다. LukLed & Stephane. 내 고객 요청이 내 DB에 디자인 문제를 도입 한 것을 깨달았습니다. (실제로는 ecom DB가 아니었지만 빠르게 성장했습니다.) 우리는 솔루션 통합을 조사하기 위해 이야기 할 때 배경을 읽는 중입니다 (Stephane 및 매핑 다시). 일단 테스트 프로젝트를 작성하면 다시 돌아올 것입니다. – Anthony
EF로 재미있게 놀아 라 :) –