EF Code First 简单的示例

一对多:

public class Category
{
    public Category()
    {
        Id = GuidComb.GenerateComb();
    }
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
        
    public virtual IList<Topic> Topics { get; set; }
}


public class Topic
{
    public Topic()
    {
        Id = GuidComb.GenerateComb();
    }
    public Guid Id { get; set; }
    public string Name { get; set; }
    public DateTime CreateDate { get; set; }

    public virtual Category Category { get; set; }
}


public class CategoryMapping : EntityTypeConfiguration<Category>
{
    public CategoryMapping()
    {
        HasKey(x => x.Id);

        HasMany(x => x.Topics)
            .WithRequired(x => x.Category);
               
    }
}


public class TopicMapping : EntityTypeConfiguration<Topic>
{
    public TopicMapping()
    {
        HasKey(x => x.Id);

        HasRequired(t => t.Category).WithMany(t => t.Topics).Map(m => m.MapKey("Category_Id")); // 注意:如果实体中保存外键属性,那么这样写:this.HasRequired(t => t.Category).WithMany(t => t.Topics).HasForeignKey(m => m.Category_Id);
            
    }
}

多对多:

public class TopicTag
{
    public TopicTag()
    {
        Id = GuidComb.GenerateComb();
    }
    public Guid Id { get; set; }
    public string Tag { get; set; }

    public virtual IList<Topic> Topics { get; set; }
}


public class Topic
{
    public Topic()
    {
        Id = GuidComb.GenerateComb();
    }
    public Guid Id { get; set; }
    public string Name { get; set; }
    public DateTime CreateDate { get; set; }

    public virtual IList<TopicTag> Tags { get; set; }
}


public class TopicTagMapping : EntityTypeConfiguration<TopicTag>
{
    public TopicTagMapping()
    {
        HasKey(x => x.Id);
    }
}



public class TopicMapping : EntityTypeConfiguration<Topic>
{
    public TopicMapping()
    {
        HasKey(x => x.Id);

        HasMany(t => t.Tags)
            .WithMany(t => t.Topics)
            .Map(m =>
                    {
                        m.ToTable("Topic_Tag");
                        m.MapLeftKey("TopicTag_Id");
                        m.MapRightKey("Topic_Id");
                    });
    }
}

 

谢谢浏览!

转载于:https://www.cnblogs.com/Music/archive/2013/04/08/my-simple-entity-framework-code-first-demo.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值