1

私は、EFコードの最初のモデルでasp.net mvc 4 Web APIに取り組んでいます。次のようなナビゲーション プロパティを持つクラスがあります。

public class Branch
{
[Key]
public int Id{get; set;}
public List<book> books{get; set;}
}

私の本のクラスは、

public class book
{
[Key]
public int id{get; set;}
public string Name{get; set;}
}

次に、ブランチのリストを取得する必要があるため、次のように記述します。

public IQuerable<branch> GetBranches(int branchid)
{
  return context.school.where(m=>m.id==branchid).ToList().AsQuerable();
}

今、ブランチクラスのブックプロパティにデータを割り当てたいので、

context.school.ToList().ForEach(m=>m.books=GetBooks(branchid));

そして今、ブランチを取得するために、次のようなURLがあります。

/api/branch/12

次のようなURLを使用して、特定のブランチで特定の本を取得する方法はありますか

/api/branch/12/book/567

12番支店の567冊を返却してください。

4

1 に答える 1

2

この種類の URL を使用して、book を BranchController に渡すことができます。

/api/branch/12?book=567

または、URL の新しいルートを作成することもできます

config.Routes.MapHttpRoute(
    name: "BranchBooksApi",
    routeTemplate: "api/branch/{id}/book/{bookId}",
    defaults: new { controller = "Branch" });

どちらのオプションも次のようなメソッドを呼び出します

public book Get(int id, int bookId)
{
    //...
}

また、本を入手する必要がある場合 (何が欲しいのかはっきりしません - 単一の本で分岐するか、単に分岐から本を出すか)、おそらくBooksControllerこのコードにはより適切な場所です。

于 2012-11-17T12:19:14.607 に答える