首页 > 解决方案 > 如果我从数据库中删除外键约束,实体框架的导航属性会起作用吗?

问题描述

如您所知,开发人员大多模拟表之间的关系,而不是使用表之间的物理关系(是的,如果您在列上放置外键约束,则从一个表绘制到另一个表的线)。

但我相信,如果导航属性没有物理关系,实体框架将无法正常工作。

那么,有什么办法吗?

我的课程:

public class Phones
{
        public int ID { get; set; }
        public string Model { get; set; }
        public string Manufacturer { get; set; }
        public List<Users> Users { get; set; }
}

public class Sims
{
        public int ID { get; set; }
        public string Code { get; set; }
}

这从用户 -> 模拟人生创建了一个 1-M 关系。

但是如果我放弃外键约束并保持原样,那么导航属性将如何工作?

标签: c#sqlentity-frameworkentity-framework-6

解决方案


在这种情况下,最好从两个类中删除引用并在这些类之外手动处理关系:

public class Sims
{
    public int ID { get; set; }
    public string Code { get; set; }

    //public User User { get; set; }
    public int UserID { get; set; }
}

推荐阅读