导航与外键
新版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 );
静,静,静