0

这是我的代码

画廊课

public class Gallery
{
   public Guid Id { get; set; }
   public virtual ICollection<PhotoGallery> Photos { get; set; }
   public List<PhotoGallery> ActivePhotos 
   { 
      get { return this.Photos.Where(/*condition*/); 
   }
}

照片类

public class Photo
{
   public Guid Id { get; set; }
   public string PhotoPath { get; set; }
}

相册类

public class PhotoGallery
{
   public virtual Gallery Gallery { get; set; }
   public virtual Photo Photo { get; set; }
   public int SortOrder { get; set; }
}

如果我运行 Add-Migration 命令,它将为 Gallery.ActivePhotos 生成我不想要的关系。我的问题是,这是 EF5 的默认行为吗?在此之前,我记得像这样的 GET only 属性根本不会被映射。还是我错了?

4

1 回答 1

0

尝试将注释添加到您的属性中,如下所示:

public class Gallery
{
   public Guid Id { get; set; }
   public virtual ICollection<PhotoGallery> Photos { get; set; }

   [NotMapped]
   public List<PhotoGallery> ActivePhotos 
   { 
      get { return this.Photos.Where(/*condition*/); 
   }
}

我没有发现任何说这对 EF5 来说是新的,但我使用的是 EF 4.3.1 并且只读了像你的问题中没有映射的属性。

希望有帮助。

于 2013-01-02T12:59:41.617 回答