Мы пытаемся создать модель МЕСТО ПРОВЕДЕНИЯ, которая имеет как одно ИЗОБРАЖЕНИЕ (для использования на странице сведений), так и набор ИЗОБРАЖЕНИЙ для слайдера изображений. Мы можем сделать одно или другое, но сложение обоих приводит к соотношению 2x 1: 1. Как таким образом установить в модели два соединения? Итак, в основном у нас есть:

public int? ImageID {get; set;}

общедоступное виртуальное изображение DefaultImage {get; set;}

Но также хочу добавить:

общедоступные виртуальные изображения ICollection {get; set;}

Или есть лучший, более рекомендуемый способ сделать это?

Ура

1
Pyrobri 27 Мар 2014 в 18:57

2 ответа

Лучший ответ

Мы использовали аннотации и миграции для наших сопоставлений не плавно, но оказались довольно простыми.

public int? ImageID { get; set; }

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

public virtual ICollection<Image> Images { get; set; }
0
Pyrobri 19 Сен 2014 в 16:14

Используйте это как свой Fluent Api:

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

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

Это работает с моделью Venue, которая указана в вашем вопросе, и нет необходимости иметь какие-либо виртуальные свойства в модели Image.

1
SOfanatic 27 Мар 2014 в 19:51