我一直在研究由Steven Sanderson编写的Pro ASP.NET MVC 2框架。到目前为止,这已经是现象了...当我认为我知道了一个相当大的数量时,我发现一本书向我展示了我知道得有多少。如何在LINQ中手动设置外键关系到SQL
我很少了解的一件事是如何使用LINQtoSQL。在史蒂文的书中,第4-6章创建了一个非常漂亮的小购物车。我经历了教程,并使所有的工作。现在,我想修改购物车以使用类别表格,而不是将类别名称作为varchar存储在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; }
这里是我的Category类
[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'更难以访问'
这是什么意思/我该如何解决这个问题?
doh!有时我希望我可以回答一个问题。谢谢您的帮助。 – quakkels 2010-08-12 21:07:57