导航与外键

新版EF 添加导航就i自动添加外键了

有了Has ,有外键,再删除Has,没有删除外键

单向导航也有外键

其实对于导航属性,我不倾向用,随着表的结构复杂,导航属性存在性能问题
因为导航属性肯定是主外键关联的,你做删除,修改操作,还要检查从表
如果是简单的表结构设计,写代码比较方便

不建议使用外键约束(foreign key),但一定要在表与表之间的关联键上建立索引

-- 创建订单表,不包含外键约束
CREATE TABLE Orders (
    OrderId INT PRIMARY KEY,
    OrderDate DATE,
    CustomerId INT
);

-- 创建客户表
CREATE TABLE Customers (
    CustomerId INT PRIMARY KEY,
    Name VARCHAR(100)
);

-- 在Orders表的CustomerId列上创建索引
CREATE INDEX IX_Orders_CustomerId ON Orders (CustomerId);


添加索引

数据注解

[Index(nameof(CourseId))]//添加索引
public class Student
{
public int Id { get; set; }
public int CourseId { get; set; }
}

Fluent.API 
builder.HasIndex(b => b.CourseId );

 

 

posted @ 2024-05-20 11:34  爱晒太阳的懒猫。。  阅读(3)  评论(0编辑  收藏  举报