Существует модель размеров ProductSize, где есть свойства:
public int Id {get; set;}
public int S {get; set;}
public int M {get; set;}
public int L {get; set;}
public int ProductId {get;set;}
public Product Product {get; set;}
Размеры хранят в себе значение Int, которые указывают на количество в наличии того или иного размера. Хочу создать дропдаун, в котором будут только указаны размеры, в которых значение больше нуля. Ну или, как вариант, будут все значения, но Enabled\Disabled по этой же логике. Но для этого мне все равно нужно получить названия колонок, в которых ненулевые значения. Как правильно будет это сделать?
Сначала вместо int хранил bool и написал этот ужасный метод (но по итогу даже не попробовал, потому что решил переделать всю БД сначала)
var product = db.Products.FirstOrDefault(p => p.Id == productId);
var availableSizes = from s in db.ProductSizes where (s.Id == productId) select s;
List<string> Sizes = new List<string>();
foreach (var s in availableSizes)
{
if(s.S == true)
{
Sizes.Add("S");
}
if(s.M == true)
{
Sizes.Add("M");
}
if (s.L == true)
{
Sizes.Add("L");
}
if (s.Xl == true)
{
Sizes.Add("XL");
}
if (s.Xxl == true)
{
Sizes.Add("XXL");
}
}
return Sizes;
Есть два варианта. Полноценный - это создавать хорошую структуру для товаров, складских остатков, проданного и списанного товара.
Но в принципе, если вы не планируете двигаться в эту сторону - то посмотрите в сторону более простой модели.
У вас отдельно должны быть размеры:
public class ProductSize
{
public int Id { get; set; }
public int Title { get; set; }
}
И отдельно их наличие:
public class Store
{
public int Id { get; set; }
public int ProductId {get;set;}
public Product Product {get; set;}
public int ProductSizeId {get;set;}
public ProductSize ProductSize {get; set;}
public int Count {get; set;}
}
В котором заполняйте количество товаров того или иного размера отдельными строками. Запросы будут гораздо проще, тут их два варианта: либо вы один продуктов+размер может иметь только одну строку в таблице, либо несколько, нужно предварительно просуммировать.
Уверен: вы очень быстро найдёте для себя много идей как пойти к полноценной складской системе :)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть функция которая проверяет привязку по железу, нужно её спрятать что бы при реверсе было сложнее отыскатьНужно что бы она выполнялась...
И так, мне нужно приложение WPF которое умеет скачивать определённый набор файлов с сервера, а так-же сверять все файлы которые есть на сервере...
Можно ли при добавлении объекта, без дополнительного поиска вставить индекс на существующий объект, если его имя должно быть уникальным?