导航属性可以是通用类型吗?

时间:2013-07-03 23:02:43

标签: entity-framework ef-migrations entity-framework-6

我有一个导航属性public virtual IUser<int> CreateBy { get; set; }

当我尝试添加迁移Add-Migration InitialMigration时,会发生以下错误:

  

导航属性“CreateBy”不是“Passo”类型的声明属性。验证它是否未从模型中明确排除,并且它是有效的导航属性。

我的类型Passo

public class Passo : EntityNome, IAuditable
{
    public virtual int? Ordem { get; set; }
    public virtual Passo ProximoPasso { get; set; }
    public virtual ICollection<User> Responsaveis { get; protected set; }
    public virtual IList<CheckListItemTemplate> CheckListItens { get; protected set; }

    public virtual DateTime CreateAt { get; protected internal set; }
    public virtual IUser<int> CreateBy { get; set; }
    public virtual DateTime? UpdateAt { get; protected set; }
    public virtual IUser<int> UpdateBy { get; set; }
}

1 个答案:

答案 0 :(得分:0)

IUser是int的集合?你无法导航到原语。

它必须是在上下文中声明的表的集合或引用。

public DbSet<int> Integers { get; set; }// you cant declare table of integers ??? 

//其他EF需要公开获取/设置,这将被忽略    public virtual ICollection Responsaveis {get;保护集; }

请看导航概念 http://msdn.microsoft.com/en-us/data/jj713564.aspx