に関連するエンティティを展開します。は自動的に私は、これらのクラスを持っているのODataコントローラ
public class Items
{
[Key]
public Guid Id { get; set; }
public string ItemCode { get; set; }
public decimal SalesPriceExcl { get; set; }
public decimal SalesPriceIncl { get; set; }
public virtual ICollection<ItemPrice> SalesPrices { get; set; }
public Items()
{
SalesPrices = new HashSet<App4Sales_ItemPrice>();
}
}
public class ItemPrice
{
[Key, Column(Order = 0), ForeignKey("Items")]
public Guid Id { get; set; }
public virtual Items Items { get; set; }
[Key, Column(Order=1)]
public Guid PriceList { get; set; }
public decimal PriceExcl { get; set; }
public decimal PriceIncl { get; set; }
public decimal VatPercentage { get; set; }
}
私はアイテムを照会し、自動的にItemPriceコレクションを取得したいです。
私はODataのV3コントローラ作成しました:
// GET: odata/Items
//[Queryable]
public IQueryable<Items> GetItems(ODataQueryOptions opts)
{
SelectExpandQueryOption expandOpts = new SelectExpandQueryOption(null, "SalesPrices", opts.Context);
Request.SetSelectExpandClause(expandOpts.SelectExpandClause);
return expandOpts.ApplyTo(db.Items.AsQueryable(), new ODataQuerySettings()) as IQueryable<Items>;
}
をしかし、私はエラーを取得する: は "ヌルフィードをシリアル化できない"
はい、いくつかのアイテムが何ItemPriceリストを持っていません。
このエラーが発生する可能性がありますか、違うことができますか? タイプのオブジェクトをキャストすることができません 'System.Data.Entity.Infrastructure.DbQuery 1[System.Web.Http.OData.Query.Expressions.SelectExpandBinder+SelectAllAndExpand
1 [.Models.Items]':
一種である、私は根本的なエラーを発見
イェルーン
に関して に「.Models.Items」と入力します。私はこの記事に出くわした後、私はそれを解決してきました
これは呼び出されるとエラーになります。基礎となるエラーの編集を参照してください –