如何通过 Fluent API 更改数据库列名称
How to change database column name via Fluent API
我有以下代码:
public abstract class Entity
{
public virtual int Id { get; set; }
}
public class Category : Entity
{
public string Name { get; set; }
public virtual ICollection<Category> Children { get; set; }
public virtual ICollection<Item> Items { get; set; }
}
public class Item : Entity
{
public string Name { get; set; }
public decimal Price { get; set; }
public DateTime DateCreated { get; set; }
public virtual Category Category { get; set; }
}
这种语法
modelBuilder.Entity<Category>().Property(x => x.Children).HasColumnName("CategoryID");
给我严重性代码描述项目文件行
错误 CS0453 类型 'ICollection' 必须是不可为 null 的值类型才能将其用作泛型类型或方法 'StructuralTypeConfiguration.Property(Expression>)'
中的参数 'T'
问:如何通过 Fluent 更改数据库列名称API?
集合本身无法映射到一列。您应该将其映射为一对多关联:
modelBuilder.Entity<Category>()
.HasMany(c => c.Children)
.WithOptional()
.Map(m => m.MapKey("CategoryID"));
我有以下代码:
public abstract class Entity
{
public virtual int Id { get; set; }
}
public class Category : Entity
{
public string Name { get; set; }
public virtual ICollection<Category> Children { get; set; }
public virtual ICollection<Item> Items { get; set; }
}
public class Item : Entity
{
public string Name { get; set; }
public decimal Price { get; set; }
public DateTime DateCreated { get; set; }
public virtual Category Category { get; set; }
}
这种语法
modelBuilder.Entity<Category>().Property(x => x.Children).HasColumnName("CategoryID");
给我严重性代码描述项目文件行 错误 CS0453 类型 'ICollection' 必须是不可为 null 的值类型才能将其用作泛型类型或方法 'StructuralTypeConfiguration.Property(Expression>)'
中的参数 'T'问:如何通过 Fluent 更改数据库列名称API?
集合本身无法映射到一列。您应该将其映射为一对多关联:
modelBuilder.Entity<Category>()
.HasMany(c => c.Children)
.WithOptional()
.Map(m => m.MapKey("CategoryID"));