Я работал над книгой Pro ASP.NET MVC 2 Framework Стивена Сандерсона. До сих пор это был феноменальный ... только когда я думаю, что знаю приличное количество, я нахожу книгу, которая показывает мне, как мало я знаю.
Одна из вещей, о которых я мало знаю, это как использовать LINQtoSQL. В книгах Стивена главы 4-6 создают очень милую маленькую корзину. Я прошел учебник и получил все работает. Теперь я хочу изменить корзину, чтобы использовать таблицу категорий вместо сохранения имени категории в качестве varchar в таблице Product.
Вот объект таблицы Product с моими изменениями, чтобы 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'
Что это значит / Как бы это исправить?