首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架5(预发布)关于实体关系等的新手问题

实体框架5(预发布)关于实体关系等的新手问题
EN

Stack Overflow用户
提问于 2012-04-20 12:41:35
回答 1查看 440关注 0票数 2

我看了this,所以有疑问。

我想在EF 5中做一些类似的事情,我没有看到ForeignKey属性,而是在EF5中看到了一个关联属性。

另外,有人能解释一下这是什么意思吗?

代码语言:javascript
复制
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Match>()
                .HasRequired(m => m.HomeTeam)
                .WithMany(t => t.HomeMatches)
                .HasForeignKey(m => m.HomeTeamId)
                .WillCascadeOnDelete(false);

    modelBuilder.Entity<Match>()
                .HasRequired(m => m.GuestTeam)
                .WithMany(t => t.AwayMatches)
                .HasForeignKey(m => m.GuestTeamId)
                .WillCascadeOnDelete(false);
}

这就是解释:

默认约定映射

主键。球队必须有两组比赛。您不能让两个FKs引用单个集合。匹配映射时不需要级联删除,因为在这些自引用多到多的情况下,它不工作。

我想做的与链接中的示例非常相似,但我不知道:

当我需要修改relationship时,主键将链接到对方,当我需要显式地使用关联来创建时

任何解释都不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2012-07-25 06:11:40

在EF 5中,如果使用移动,可以更改迁移代码以不实现级联删除:

代码语言:javascript
复制
CreateTable(
            "dbo.Match",
            c => new
                {
                    MatchId = c.Long(nullable: false, identity: true),
                    Description = c.String(),
                    HomeTeamId = c.Long(nullable: false),
                 })
            .PrimaryKey(t => t.MatchId)
            .ForeignKey("dbo.Team", t => t.HomeTeamId, cascadeDelete: false)                
            .Index(t => t.MatchId)
            .Index(t => t.HomeTeamId);

    }

或者类似的东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10246455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档