こんにちは、私はいくつかのテーブルを持つデータベースを持っています
[Options],[ProductAttributes],[Products],[ProductSKU],[ProductSKUOptionMappings]
これをエンティティモデルとしてプロジェクトに追加しましたが、上記の指定されたテーブルからこれらの列を取得できる linq クエリを作成したいと思います
このストアド プロシージャに基づいて
ALTER procedure [dbo].[GetProductDetail]
(
@ProductID bigint
)
as
begin
Select P.ProductName, P.ProductDescription, PA.SKU, PA.OptionId,O.OptionName, PA.Value, PS.ImageURL from ProductSKU PS
INNER JOIN ProductAttributes PA ON PS.SKU = PA.SKU
INNER JOIN Products P ON P.ProductId = PS.ProductId
INNER JOIN Options O ON O.OptionsId = PA.OptionId
WHERE PS.ProductId = @ProductID
end
このクエリを linq クエリに変換するか、これを Storedprocedure として使用して必要な Json オブジェクトを取得したい
私のストアドプロシージャの出力は次のようになります
ProductName ProductDescription SKU OptionId OptionName Value ImageURL
Tactical Long Sleeve Shirts Hemline side slits Shirt_1001 1 Color Grey C:\Users\Administrator\Desktop\Images\LongSleeveShirt.jpg
Tactical Long Sleeve Shirts Hemline side slits Shirt_1001 2 Size S C:\Users\Administrator\Desktop\Images\LongSleeveShirt.jpg
Tactical Long Sleeve Shirts Hemline side slits Shirt_1001 3 Fit Regular C:\Users\Administrator\Desktop\Images\LongSleeveShirt.jpg
各製品には上記のような異なる SKU がある可能性があるため、このような json オブジェクトを構築する方法を教えてください。
i want my json object to be in this format
var productdetails={
"productId": "1",
"productname": "Casualshirts",
"productSkus": [
{
"Skuimage": "URL",
"SKU": [
{
"ProducSKU": "Shoe1001",
"Options": [
{
"productOptions": [
{
"OptionID": "1",
"optionname": "Color",
"value": "Black"
},
{
"OptionID": "2",
"optionname": "Size",
"value": "S"
},
{
"OptionID": "3",
"optionname": "Fit",
"value": "Regular"
}
]
}
]
},
{
"ProducSKU": "Shoe1002",
"Options": [
{
"productOptions": [
{
"OptionID": "1",
"optionname": "Color",
"value": "Black"
},
{
"OptionID": "2",
"optionname": "Size",
"value": "S"
},
{
"OptionID": "3",
"optionname": "Fit",
"value": "Regular"
}
]
}
]
},
{
"ProducSKU": "Shoe1003",
"Options": [
{
"productOptions": [
{
"OptionID": "1",
"optionname": "Color",
"value": "Black"
},
{
"OptionID": "2",
"optionname": "Size",
"value": "S"
},
{
"OptionID": "3",
"optionname": "Fit",
"value": "Regular"
}
]
}
]
}
]
ここに私のモデルクラスがあります
public class ProductItems
{
public long ProductID { get; set; }
public string ProductName { get; set; }
public string ImageURL { get; set; }
public List<productSKU> SKUs { get; set; }
}
public class productSKU
{
public string productsku { get; set;}
public string SKUImageURL { get; set;}
public List<options> oPTIONS { get; set; }
}
public class options
{
public long OptionID { get; set; }
public string OptionName { get; set;}
public string OptionValue { get; set;}
}
上記のjson pbjkectのように、ストアドプロシージャまたはlinqクエリを作成する方法を教えてください...
これは、データをモデルにバインドしようとしている方法です
public IEnumerable<ProductItems> ProductDeatils(long ProductID)
{
var productdeatils = products.ExecuteStoreQuery<ProductItems>("GetProductDetail @ProductID ", new SqlParameter("@ProductID", ProductID));
var data=new List<ProductItems>();
foreach (var prod in productdeatils)
{
ProductItems items = new ProductItems();
items.ProductID = prod.ProductID;
items.ProductName = prod.ProductName;
items.SKUs
}
return data;
}
クラス内のプロパティの数とデータベース列の数に行き詰まっています。手順から取得していますが、それらをモデルにマップするにはどうすればよいですか