C# 集合的EntityFramework代码优先分配

C# 集合的EntityFramework代码优先分配,c#,asp.net,code-first,C#,Asp.net,Code First,我对EF CodeFirst有问题。 我从BaseModel继承了一些模型,我想在一些模型中包含图像。 例如,我有一个EFModel用户 public class User : BaseModel<User> { /// <summary> /// Initializes a new instance of the <see cref="User"/> class. /// </summary> public Use

我对EF CodeFirst有问题。 我从BaseModel继承了一些模型,我想在一些模型中包含图像。 例如,我有一个EFModel用户

public class User : BaseModel<User>
{
    /// <summary>
    /// Initializes a new instance of the <see cref="User"/> class.
    /// </summary>
    public User()
    {
       Photos = new HashSet<Photo>();
    }

    /// <summary>
    /// Images
    /// </summary>
    public ICollection<Photo> Photos { get; set; }
}
和另一个名为Spot的EF模型

/// <summary>
/// Eventlocation
/// </summary>
[DebuggerDisplay("Spot: {Name} Coordinate: {Coordinate}")]
public class Spot : BaseModel<Spot>, ISpot
{
    /// <summary>
    /// Initializes a new instance of the <see cref="Spot"/> class.
    /// </summary>
    public Spot()
    {
        Photos = new HashSet<Photo>();
    }

    /// <summary>
    /// Name
    /// </summary>
    [Display(Name = "Spotname", GroupName = "Names", ResourceType = typeof(Texts))]
    [Required]
    public string Name { get; set; }

    /// <summary>
    /// Description
    /// </summary>
    [Display(Name = "Description", Description = "SpotDescription", GroupName = "Names", ResourceType = typeof(Texts))]
    public string Description { get; set; }

    /// <summary>
    /// Geo Position
    /// </summary>
    public GeoCoordinate Coordinate { get; set; }

    /// <summary>
    /// Images
    /// </summary>
    public ICollection<Photo> Photos { get; set; }

}
在两个EF模型中,我都希望有一个照片列表。目前照片实体只有名称和描述字节[],我将在稍后制作

public class Photo 
{
    /// <summary>
    /// Identifier
    /// </summary>
    [Key]
    public int Id { get; set; }

    /// <summary>
    /// Imagename
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// Imagedescription
    /// </summary>
    public string Description { get; set; }

}
所以一切都正常,但我的问题是生成的表。因为实体生成具有以下列的表dbo.Photos |ID PK |名称|描述|用户| ID FK |现场| ID FK

但我希望有一个简单的表,可以方便地用于所有的BaseModels,而不需要在BaseModel类中使用它。但我想有以下几个专栏

|ID PK |名称|描述|关系模型| ID FK

我真的不知道我怎样才能做到这一点。我希望有人能帮助我

多谢各位

///编辑:

基本模型

public abstract class BaseModel : IBaseModel, IEquatable<BaseModel>
{
    [Key]
[HiddenInput(DisplayValue = false)]
    public Guid Id { get; set; }
}

public abstract class BaseModel<T>:BaseModel
    where T:BaseModel<T>,new()
{
    public static T Create()
    {
        var result = new T(){Id = Guid.NewGuid()};
        result.UpdateOwner();
        return result;
    }
}