EF4代码仅适用于多对多关系

时间:2010-06-25 22:07:26

标签: entity-framework entity-framework-4 code-first

我有以下内容:

  • 产品POCO
  • 仅适用于EF代码的ProductConfiguration类(CTP3)
  • 数据库中的产品表
  • 数据库中的ProductCrossSell表

我的产品和ProductConfiguration类看起来像:

public class Product
{
    public virtual Guid Id { get; set; }
    public virtual string Name { get; set; }
    public virtual ICollection<Product> CrossSells  { get; set; }
}

public class ProductConfiguration : EntityConfiguration<Product>
{
    public ProductConfiguration()
    {
        HasKey(p => p.Id);
        Property(p => p.Name).IsRequired().IsUnicode().IsVariableLength().HasMaxLength(254);

        // Relationship??

        MapSingleType(p => new
                                {
                                    p.Id,
                                    p.Name
                                }).ToTable("Product");
    }
}

我的数据库表格如

CREATE TABLE [dbo].[Product](
[Id] [uniqueidentifier] NOT NULL,
[Name] [nvarchar](254) NOT NULL

CREATE TABLE [dbo].[ProductCrossSell](
[Id] [uniqueidentifier] NOT NULL,
[ProductId] [uniqueidentifier] NOT NULL

这只是Product表与其自身的多对多关系,其中产品可以链接到其他产品。

有人知道如何在EF代码中设置此关系吗?我看到在代码中设置了其他关系的示例,但没有示例说明如何设置它。

当成功执行GetProductById查询时,EF会加入这两个表并填充Product对象以及CrossSells IColletion。

感谢任何帮助。

由于

0 个答案:

没有答案