[efcore] 2024/10/24 23:43:23
https://learn.microsoft.com/zh-cn/ef/core/what-is-new/ef-core-8.0/whatsnew#primitive-collections
设置参考如下:
modelBuilder .Entity<PrimitiveCollections>() .Property(e => e.Booleans) .HasMaxLength(1024) .IsUnicode(false);efcore7开始支持复杂类型的json列。
设置参考如下:
单个对象配置:
builder.OwnsOne(a => a.MyClass).ToJson();集合对象配置:
builder.OwnsMany(a => a.MyClasses).ToJson();
查询json列:
var authorsInChigley = await context.Authors .Where(author => author.Contact.Address.City == "Chigley") .ToListAsync();
更新json列:
var arthur = await context.Authors.SingleAsync(author => author.Name.StartsWith("Arthur")); arthur.Contact.Address.Country = "United Kingdom"; await context.SaveChangesAsync();
为JSON列建索引:
// 为JSON列创建索引 modelBuilder.Entity<User>() .OwnsOne(u => u.Address) .ToJson() .IndexJsonProperty(a => a.City); // 对集合进行索引 modelBuilder.Entity<User>() .OwnsMany(u => u.PhoneInfos) .ToJson() .IndexJsonProperty(p => p.Type);