当前位置: 首页 > 知识库问答 >
问题:

实体框架7外键列名

宗政文彬
2023-03-14

我有一个MasterUserApprovalOfficial实体,它有两个外键,MasterUserId和SoftwareSystemId。EF 7足够聪明,可以看出这两个属性是外键。这是我的MasterUserApprovalOfficial类

public class MasterUserApprovalOfficial
{
    public int MasterUserApprovalOfficialId { get; set; }

    public int MasterUserId { get; set; }

    public MasterUser MasterUser { get; set; }

    public int SofwareSystemId { get; set; }

    public SoftwareSystem SoftwareSystem { get; set; }

    public bool Active { get; set; }

    public DateTime CreateDate { get; set; }

    public MasterUserApprovalOfficial()
    {
        CreateDate = DateTime.Now;
    }
}

如果我查看创建的表,MasterUserId列按预期创建并命名,SoftwareSystemId列然而被创建为SoftwareSystemSoftwareSystemId(类的名称附加到主键的名称)

有什么原因吗?

共有2个答案

伊羽
2023-03-14

使用ForeignKey属性来修复此问题:

[ForeignKey("SoftwareSystem"),Column("SoftwareSystemId")]
public int SoftwareSystemId { get; set; }

默认情况下,外键后面将添加“Id”,但由于您已经有了一个具有该名称的属性(EF显然无法识别它是外键),因此它会更改为SoftwareSystemSoftwareSystemId

尚鸿才
2023-03-14
public int SofwareSystemId { get; set; }

再次阅读该属性。有一个t丢失:)

第二个答案也是正确的,外键不需要属性。一个班的成员就足够了

 类似资料:
  • 问题内容: 这可能是太多基于意见的问题,但这里有: 我发现了与实体框架和数据库迁移有关的一个有趣的怪癖。看来,每当我们创建外键时,它也会在该列上创建索引。 我读了一个SO问题:实体框架代码第一个外键添加索引,每个人似乎都说这是一个很好的,有效的主意,但我不知道怎么做。索引列是非常特定于环境的。例如,EF索引了我的表上几乎从来没有(〜1%)用于搜索的FK,并且也索引了源表,这意味着即使我加入其他表,

  • 问题内容: 我需要在每个用户已经有一个ID作为键的数据库中存储大量用户数据。但是,这些用户全部来自更大的用户池,因此,该ID不会增加并且无法自动生成。我需要能够手动设置ID。 是否有捷径可寻? 问题答案: 我进行了一些测试,这似乎对我在EF 7.0.0 rc1-final上有效: 我的测试代码: (完整的程序代码在这里:http : //pastebin.com/hSs9HZCP) 它可以正确插入

  • 我有一个ASP MVC.NET核心(C#)项目,由于业务原因,SQL表不能有外键,因此,EF模型不映射关系(Entity.HasMany...)。 假设EF为实体生成一个模型,为生成一个模型。我想知道他们两个之间的关系。一个有多个并且一个属于一个。该任务在数据库中有项目Id(但请记住,它没有设置为FK)。 现在,我想通过to Entity获得一个项目列表,同时获得每个项目的任务列表。我通过创建一个

  • 我想将类的外键从列表映射到类的主键。实体框架在子问题中没有建立这种关系。 我的形式类。 我的问题课。 IEntityTypeConfiguration中的配置应该是什么样子?

  • 我正在使用实体框架管理我的sql server ce数据库。我希望我的表的主键由其他表的几个外键组成。我希望这样的事情能奏效: 但它会导致以下数据库迁移错误: 票据打印机。Bill::EntityType“Bill”没有定义键。定义此EntityType的键。Bills:EntityType:EntitySet“Bills”基于未定义键的类型“Bill”。 如何使表具有由这三个外键组成的主键?

  • 在实体框架中,我想使用两个外键作为另一个实体类型的主键。 但是,这会给我一个缺少键的错误。 我知道我可以定义另外两个属性来保存引用实体类型的主键。Visual Studio是否不够聪明,无法自行使用它们的主键?