fluent api相關知識記錄
阿新 • • 發佈:2022-04-01
1、檢視與實體對映:builder.ToView("blogsView");
2、排除屬性對映:builder.Ignore(b=>b.Name2);
3、配置列名:builder.Property(b=>b.BlogId).HasColumnName("blog_id");//預設為BlogId屬性名,後面也可以指定名稱
4、配置列資料型別:builder.Property(e=>e.Title).HasColumnType("varchar(200)");
5、配置主鍵:預設把名字為Id或者“實體型別+Id”的屬性作為主鍵,可以用HasKey()來配置其他屬性作為主鍵。builder.HasKey(e=>e.Number);支援複合主鍵但是不建議使用。
6、生成列的值:builder.Property(b=>b.Number).ValueGeneratedOnAdd();
7、為屬性設定預設值:builder.Property(b=>b.Age).HasDefaultValue(18);
8、索引:builder.HasIndex(b=>b.Url);
9、複合索引:builder.HasIndex(p=>new{p.FirstName,p.LastName});
10、唯一索引:IsUnique();
11、聚集索引:IsClustered();
使用EF Core太多高階特性的時候需要謹慎,儘量不要和業務邏輯混合在一起,以免造成專案結構程式碼混亂,比如Ignore,Shadow,Table Splitting等