我的item类中有一个名为vend_id的属性,当然EF认为它是供应商表的外键。它实际上应该是数据库中的外键,但由于我不知道的原因,db的设计者选择不将其作为外键。
我使用EF在本地计算机上创建db模式的副本。当EF创建数据库时,我想告诉它不要在vend_id列上创建外键。我怎么做?理想情况下,我不想重命名该属性,因为我的数据库中有几个这样的实例,这只会让它变得混乱。
谢谢你, 萨姆
答案 0 :(得分:0)
如果Vendor
表没有表Item
的外键,则Items
实体类中的Vendor
实体不能具有导航属性。如果未在实体类Item
中指定导航属性,则EF不会推断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; }
}