私はmystoreシャープライトアーキテクチャの例を使用します。ここでソリューションをダウンロードすることができます: https://github.com/codai/Sharp-LiteSharp Liteアーキテクチャを使用したASP.NET MVC 3で結合クエリを実行
したがって、問題のエンティティは2つあります。製品。そしてProductCategories。それはそれで製品のリストのリストを持っている
public class Product : Entity
{
public Product() {
Categories = new List<ProductCategory>();
}
[DomainSignature]
[Required(ErrorMessage = "Name must be provided")]
[StringLength(255, ErrorMessage = "Name must be 255 characters or fewer")]
public virtual string Name { get; set; }
/// <summary>
/// Money is a component, not a separate entity; i.e., the Products table will have column
/// for the amount
/// </summary>
[DataType("Money")]
public virtual Money Price { get; set; }
/// <summary>
/// many-to-many between Product and ProductCategory
/// </summary>
[Display(Name="Product Categories")]
public virtual IList<ProductCategory> Categories { get; protected set; }
}
お知らせ:
製品は、次のようになります。したがって、それに適用されるProductCategoriesのリストがあります。
そして、ここでは、ProductCategoryです:
public class ProductCategory : Entity
{
public ProductCategory() {
Children = new List<ProductCategory>();
Products = new List<Product>();
}
[DomainSignature]
[Required(ErrorMessage="Name must be provided")]
[StringLength(255, ErrorMessage="Name must be 255 characters or fewer")]
public virtual string Name { get; set; }
/// <summary>
/// many-to-one from child ProductCategory to parent ProductCategory
/// </summary>
[Display(Name="Parent Category")]
public virtual ProductCategory Parent { get; set; }
/// <summary>
/// many-to-many between ProductCategory and Product
/// </summary>
public virtual IList<Product> Products { get; protected set; }
/// <summary>
/// one-to-many from parent ProductCategory to children ProductCategory
/// </summary>
public virtual IList<ProductCategory> Children { get; protected set; }
}
は、私は私がどこ文で簡単なものを作っていることを十分にクエリを理解しています。たとえば、これは別のプログラムで顧客の名字を検索するために使用したクエリです。
public static IQueryable<Customer> GetByFirstName(this IQueryable<Customer> customers, string name)
{
name = name.ToUpper();
return
customers.Where(c => c.BillingAddress.FirstName.ToUpper().Contains(name));
}
しかし、私はまだジョインを理解していません。誰かが私に光を見せてくれますか?
Sharp Liteとの関係について教えてください。あなたは何をしようとしていますか、なぜあなたは結合が必要だと思いますか? –
あなたは何を達成しようとしていますか? –
申し訳ありませんが、私は明確ではありませんでした。私はProductCategoryによる製品の問い合わせをしようとしています。 – Bill