Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >EF 4.1代码第一个外键添加额外的列

EF 4.1代码第一个外键添加额外的列
EN

Stack Overflow用户
提问于 2011-06-27 08:05:45
回答 1查看 1K关注 0票数 5

我有以下两个实体(在许多实体中,但它们给我带来了问题)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class StartPoint
{
    public int StartPointId { get; set; }
    public string Description { get; set; }
    public int StartPointNumber { get; set; }    
    public int StartAreaId { get; set; }
    public StartArea StartArea { get; set; }
}    

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class StartArea
{
    public int StartAreaId { get; set; }
    public string Description { get; set; }
    public ICollection<StartPoint> StartPoints { get; set; }
}

当允许EF创建我的数据库时,它抱怨我需要关闭级联删除,因为有多个路径,我已经这样做了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        modelBuilder.Entity<StartPoint>()
            .HasRequired(x => x.StartArea)
            .WithMany()
            .HasForeignKey(x => x.StartAreaId)
            .WillCascadeOnDelete(false);

问题是,当创建数据库时,我会得到两个外键,一个是我所期望的StartAreaId,另一个是StartArea_StartAreaId。仅使用StartAreaId。为什么以及如何摆脱StartArea_StartAreaId。如果我删除上下文中的HasForeignKey并从实体中删除StartAreaId,则会得到多个StartArea_StartAreaId列,如StartArea_StartAreaId和StartArea_StartAreaId1中所示。我需要做什么才能阻止这种情况的发生?我只想让StartAreaId作为我的外键。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-27 08:09:53

问题是WithMany为空

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    modelBuilder.Entity<StartPoint>()
        .HasRequired(x => x.StartArea)
        .WithMany(y => y.StartPoints)
        .HasForeignKey(x => x.StartAreaId)
        .WillCascadeOnDelete(false);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6490111

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文