0

我有一个导航属性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; }
}
4

1 回答 1

0

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

它需要是在上下文中声明的 Table 的集合或引用。

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

// 此外 EF 需要公共 get/set,这将被忽略 public virtual ICollection Responsaveis { get; 受保护的集合;}

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

于 2013-08-06T12:11:22.990 回答