将导航属性声明为虚拟IReadOnlyCollection <t>

时间:2017-05-19 11:01:35

标签: c# entity-framework ef-code-first one-to-many ef-fluent-api

我在应用和版本之间有一对多的关系

public class App
{       
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int AppId { get; set; }        

    public string Name { get; set; }       

    public virtual ICollection<Versions> AppVersions { get; set; } =
        new List<Versions>();

}

public class Versions

{    
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int VersionId { get; set; }
public string Description { get; set; } 

[ForeignKey("AppId")]
public virtual App MyApp { get; set; }
}

//流畅的api以避免级联删除

modelBuilder.Entity<App>()
        .HasMany(c => c.AppVersions)
        .WithRequired(c => c.MyApp)
        .HasForeignKey(e => e.AppId)
        .WillCascadeOnDelete(false)

这很好但如果我将ICollection更改为IReadOnlyCollection(因为我不希望支持从应用程序添加和删除此字段,我会在&#39; HasMany&#上收到以下错误39;流利的api。

严重级代码说明项目文件行抑制状态 错误CS0411方法EntityTypeConfiguration.HasMany的类型参数(表达式&gt;&gt;) 无法从使用中推断出来。请尝试明确指定类型参数。

所以我不确定这是否正确。

0 个答案:

没有答案