0

我的 items 类上有一个名为 vend_id 的属性,当然 EF 认为它是 vendor 表的外键。它实际上应该是数据库中的外键,但由于我不知道的原因,数据库的设计者选择不将其设为外键。
我正在使用 EF 在本地计算机上创建 db 模式的副本。当 EF 创建数据库时,我想告诉它不要在 vend_id 列上创建外键。我怎么做?理想情况下,我不想重命名该属性,因为我的数据库中有几个这样的实例,这只会让人感到困惑。

谢谢你,山姆

4

1 回答 1

0

如果表没有指向表的外键,则不能在实体类中拥有指向Vendor实体的导航属性。如果您没有在实体类中指定导航属性,EF 不会推断这是外键。ItemItemsVendorItemvend_id

更新:

无法通过以下方式重现:

[Table("EntityA")]
public partial class EntityA
{
    public int Id { get; set; }
    public Nullable<int> EntityBId { get; set; }
    public string Description { get; set; }

    [ForeignKey( "EntityBId" )]
    public virtual EntityB EntityB { get; set; }

    // this is not created as a FK
    //  nor does EntityCId cause a FK
    public int EntityC_Id { get; set; }
}

[Table("EntityC")]
public class EntityC
{
    public EntityC()
    {
        EntitiesD = new HashSet<EntityD>();
    }

    public int EntityCId { get; set; }

    public string Name { get; set; }

    public virtual ICollection<EntityD> EntitiesD { get; set; }
}
于 2013-10-21T17:08:43.137 回答