【问题标题】:How to change database column name via Fluent API如何通过 Fluent API 更改数据库列名
【发布时间】:2016-02-26 07:09:56
【问题描述】:

我有以下代码:

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”必须是不可为空的值类型,才能将其用作泛型类型或方法“StructuralTypeConfiguration.Property(Expression>)”中的参数“T”

问:如何通过 Fluent API 更改数据库列名?

【问题讨论】:

    标签: entity-framework ef-fluent-api


    【解决方案1】:

    集合本身不能映射到一列。您应该将其映射为一对多关联:

    modelBuilder.Entity<Category>()
                .HasMany(c => c.Children)
                .WithOptional()
                .Map(m => m.MapKey("CategoryID"));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-13
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-12
      • 2016-07-08
      相关资源
      最近更新 更多