1:1 AND 1:很多人加入MVC5模型

时间:2014-03-27 14:57:53

标签: entity-framework

我们正在尝试创建一个模型VENUE,它既包含一个IMAGE(在其详细信息页面中使用),也包含一个图像滑块的IMAGES集合。 我们可以做一个或另一个,但最后添加2x 1:1的关系。 我们如何在模型中以这种方式建立两个连接? 所以基本上我们有:

  

public int? ImageID {get; set;}

     

public virtual Image DefaultImage {get; set;}

但也想添加:

  

public virtual ICollection Images {get; set;}

或者有更好的,更推荐的方法吗?

干杯

2 个答案:

答案 0 :(得分:1)

将此作为您的Fluent Api使用:

.HasOptional(v => v.DefaultImage)
    .WithRequired()
    .WillCascadeOnDelete(false);

.HasMany(v => v.Images)
    .WithRequired()
    .WillCascadeOnDelete(false);

这适用于您在问题中使用的Venue模型,并且Image模型中不需要任何虚拟属性。

答案 1 :(得分:0)

我们使用注释和迁移来表示我们的映射并不流畅,但结果却相当简单。

public int? ImageID { get; set; }

[Display(Name = "Default Image")]
public virtual Image Image { get; set; }

public virtual ICollection<Image> Images { get; set; }