2015-03-20 2 views
1

У меня есть объект под названием «Пространство», и внутри него есть «Изображения». Изображения имеют свойство ordering, которое является int. Я пытаюсь проверить, есть ли простой linq, который можно сделать для замены значений упорядочения.Как я могу поменять два значения дочернего объекта

public class Space 
{ 
    public int SpaceId { get; set; } 
    public virtual ICollection<SpaceImage> Images { get; set; } 
} 

public class SpaceImage 
{ 
    public int SpaceImageId { get; set; } 
    public byte[] Image { get; set; } 
    public byte[] ImageThumbnail { get; set; } 
    public string ContentType { get; set; } 
    public int Ordering { get; set; } 
} 

ex. изображение может иметь заказав 3 и другой будет иметь 6, я хочу поменять эти два числа для каждого из этих изображений

public void Swap(int spaceId, int old, int new) 
{ 
    //swap 3 and 6 for the ordering value for the two spaceImages that contain these values where spaceId is spaceId 
} 
+0

Вы не должны быть Передает 'SpaceImageId' вы хотите поменять заказ? –

+0

Я так не думаю. Я получаю доступ к данным изображения через объект «Космос». – user1186050

+0

Если это так, тогда нет необходимости в 'spaceId', поскольку он уже является частью объекта. –

ответ

3

В общем, LINQ будет использоваться для выполнения запроса. Вы можете использовать его, чтобы найти соответствующие SpaceImage экземпляры, а затем установите значения соответственно:

// Assuming this is a method in the Space class 
public void Swap(int oldOrder, int newOrder) 
{ 
    var oldInst = this.Images.FirstOrDefault(si => si.Ordering == oldOrder); 
    var newInst = this.Images.FirstOrDefault(si => si.Ordering == newOrder); 

    if (oldInst != null && newInst != null) 
    { 
     oldInst.Ordering = newOrder; 
     newInst.Ordering = oldOrder; 
    } 
    else 
    { 
     // There weren't matching images - handle that case here 
    } 
} 
+0

, как бы сохранить их обратно через репозиторий «Космос»? У меня нет изображения репо только для «Пространства» – user1186050

+0

@ user1186050 Ну, это на сущности. Это задает свойства для этих объектов, поэтому сохраните, но вы сохраните их как обычно. –

+0

прямо сейчас у меня есть только пробел, который я могу сделать. Если я верну эти два изображения обратно в пространство, а затем передам пространство репо, которое сохранит данные изображения, которые были обновлены? – user1186050

Смежные вопросы