2010-08-12 5 views
2

저는 Steven Sanderson이 저술 한 Pro ASP.NET MVC 2 Framework를 작업했습니다. 지금까지는 최악의시기였습니다 ... 내가 알맞은 양을 안다고 생각할 때 나는 내가 얼마나 작은지를 보여주는 책을 발견했다.LINQ to SQL에서 외래 키 관계를 수동으로 설정하는 방법

내가 거의 알지 못하는 것 중 하나는 LINQtoSQL을 사용하는 방법입니다. 스티븐 (Steven)의 저서, 4-6 장은 아주 좋은 작은 장바구니를 만듭니다. 나는 튜토리얼을 읽고 모든 것이 작동하도록했다. 이제 카테고리 테이블을 Product 테이블의 varchar로 저장하는 대신 Category 테이블을 사용하도록 카트를 수정하려고합니다.

변경 사항이있는 Product 테이블 개체가 Categories 테이블에 대한 외래 키 관계로 CategoryID를 갖습니다.

일관성 접근성 : 속성 유형

[Table(Name="Products")] 
    public class Product 
    { 
     [HiddenInput(DisplayValue=false)] 
     [Column(IsPrimaryKey=true, IsDbGenerated=true, AutoSync=AutoSync.OnInsert)] 
     public int ProductID { get; set; } 

     [Required(ErrorMessage="Please enter a product name")] 
     [Column] public string Name { get; set; } 

     [Required(ErrorMessage="Please enter a description")] 
     [DataType(DataType.MultilineText)] 
     [Column] public string Description { get; set; } 

     [Required] 
     [Range(0.01, double.MaxValue, ErrorMessage="Please enter a positive price")] 
     [Column] public decimal Price { get; set; } 


     [Required(ErrorMessage="Please enter a category")] 
     [Column] public int CategoryID { get; set; } 

     internal EntityRef<Category> _category; 
     [System.Data.Linq.Mapping.Association(ThisKey = "CategoryID", Storage = "_category")] 
     public Category Category { 
      get { return _category.Entity; } 
      internal set { _category.Entity = value; CategoryID = value.CategoryID; } 
     } 


     [Column] public byte[] ImageData { get; set; } 

     [ScaffoldColumn(false)] 
     [Column] public string ImageMimeType { get; set; } 

그리고 여기 내가이 코드를 만들려고 할 때, 나는 내가 이해하지 못하는 오류를 가지고

[Table(Name="Categories")] 
    class Category 
    { 
     [Column(IsPrimaryKey=true, IsDbGenerated=true, AutoSync=AutoSync.OnInsert)] 
     internal int CategoryID { get; set; } 

     [Column] 
     public int ParentCategoryID { get; set; } 

     [Column] 
     [Required] 
     public string Name { get; set; } 
    } 

내 범주 클래스 'SportsStore.Domain.Entities.Category' 은 'SportsStore.Domain.Entities.Product.Category'속성보다 액세스 할 수 없습니다.

그 의미는 무엇입니까/어떻게 해결할 수 있습니까?

답변

1

클래스 "Categroy"가 "Product"보다 덜 눈에 띄게 나타납니다. '제품'에는 공개 된 '카테고리'라는 공개 속성이 있습니다. 이것이 "일관성없는 접근성"입니다.

클래스 "카테고리"를 "제품"처럼 공개로 선언해야합니다.

+0

doh! 때로는 질문을 다시받을 수 있기를 바랍니다. 도와 주셔서 감사합니다. – quakkels

관련 문제