.Net Mvc 4アプリケーションをビルドしましたが、RESTで拡張したいと思います。
Entity Frameworkを使用していますが、次の問題があります。
私の目標は、カテゴリーに複数の商品があり、商品が複数のカテゴリーに属することができるシステムを作ることです。
次のように:
public class Categorie
{
[Key]
public int Id { get; set; }
[Required]
public string Naam { get; set; }
[Required]
public string Omschrijving { get; set; }
public byte[] Plaatje { get; set; }
private List<Product> producten;
public virtual List<Product> Producten
{
get { return producten; }
set { producten = value; }
}
}
public class Product
{
[Key]
public int Id { get; set; }
[Required]
public string Naam { get; set; }
[Required]
public string Omschrijving { get; set; }
[Required]
public double Prijs { get; set; }
private List<Categorie> categorien = new List<Categorie>();
public virtual List<Categorie> Categorien
{
get { return categorien; }
set { categorien = value; }
}
[Required]
public byte[] Plaatje { get; set; }
}
注:エンティティフレームワークがマージテーブルを作成するように、そこには仮想プロパティがあります。通常、すべてのカテゴリを製品にリンクし、その逆も同様です。
そして私の残りは次のようになります:
// GET api/Rest/5
public Product GetProduct(int id)
{
Product product = db.Producten.Find(id);
Product newProduct = new Product();
if (product == null)
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
}
else
{
product.Categorien = null;
}
newProduct.Id = product.Id;
newProduct.Naam = product.Naam;
newProduct.Omschrijving = product.Omschrijving;
newProduct.Plaatje = product.Plaatje;
newProduct.Prijs = product.Prijs;
newProduct.Categorien = product.Categorien;
return newProduct;
}
最初の問題:カテゴリがある限り、商品を送信できません。私はそれをnullにする必要があります。2番目の問題:最初の問題のため、元の製品を送信できません。