我的 items 类上有一个名为 vend_id 的属性,当然 EF 认为它是 vendor 表的外键。它实际上应该是数据库中的外键,但由于我不知道的原因,数据库的设计者选择不将其设为外键。
我正在使用 EF 在本地计算机上创建 db 模式的副本。当 EF 创建数据库时,我想告诉它不要在 vend_id 列上创建外键。我怎么做?理想情况下,我不想重命名该属性,因为我的数据库中有几个这样的实例,这只会让人感到困惑。
谢谢你,山姆
我的 items 类上有一个名为 vend_id 的属性,当然 EF 认为它是 vendor 表的外键。它实际上应该是数据库中的外键,但由于我不知道的原因,数据库的设计者选择不将其设为外键。
我正在使用 EF 在本地计算机上创建 db 模式的副本。当 EF 创建数据库时,我想告诉它不要在 vend_id 列上创建外键。我怎么做?理想情况下,我不想重命名该属性,因为我的数据库中有几个这样的实例,这只会让人感到困惑。
谢谢你,山姆
如果表没有指向表的外键,则不能在实体类中拥有指向Vendor
实体的导航属性。如果您没有在实体类中指定导航属性,EF 不会推断这是外键。Item
Items
Vendor
Item
vend_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; }
}