c# - 如果我从数据库中删除外键约束,实体框架的导航属性会起作用吗?
问题描述
如您所知,开发人员大多模拟表之间的关系,而不是使用表之间的物理关系(是的,如果您在列上放置外键约束,则从一个表绘制到另一个表的线)。
但我相信,如果导航属性没有物理关系,实体框架将无法正常工作。
那么,有什么办法吗?
我的课程:
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 关系。
但是如果我放弃外键约束并保持原样,那么导航属性将如何工作?
解决方案
在这种情况下,最好从两个类中删除引用并在这些类之外手动处理关系:
public class Sims
{
public int ID { get; set; }
public string Code { get; set; }
//public User User { get; set; }
public int UserID { get; set; }
}
推荐阅读
- android - 从firebase获取消息后如何更改应用程序中的视图?
- java - 在典型的微服务架构中,如何链接各个微服务的独立 RDBMS 数据库中的相关数据?
- docker - 如何创建包含公共和私有图像的 docker-compose.yml 文件?
- python - multiprocessing.Queue 不能用作类中的实例变量?
- scikit-learn - 他们是否有任何 sklearn 模块,例如用于回归的投票分类器?
- c++ - 当函数中没有声明具有相同名称的对象时发生阴影
- c# - 如何使用 C# 将元素插入到格式不正确的 XML 文件中的特定节点中?
- generics - Kotlin 可扩展的空值检查
- limit - 在 mikrotik/hotspot 和 freeradius mikroik-group 属性中使用用户配置文件控制用户组带宽限制
- influxdb - 如何在 influx db 中获取字段值的分布