EF 5 Add-Migration为仅GET属性创建外键?

时间:2013-01-02 10:11:10

标签: c# entity-framework migration

这是我的代码

Gallery类

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*/); 
   }
}

Photo类

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

PhotoGallery课程

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属性永远不会被映射。或者我错了吗?

1 个答案:

答案 0 :(得分: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并且只读了你问题中没有映射的属性。

希望有所帮助。