2017-01-29 9 views
0

で作業していない:データが移入されItemBidsASP.NET MVC遅延ロードは、私はこれらの二つのモデルとオークションのWebサイト作成しているICollection

public class ItemModel 
{ 
    [Key] 
    public int ItemModelId { get; set; } 

    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")] 
    public DateTime DateCreatedUtc { get; set; } 

    ... 

    [ForeignKey("AcceptedBidModel")] 
    public int? AcceptedBidModelId { get; set; } 

    public virtual BidModel AcceptedBidModel { get; set; } 

    public virtual ICollection<BidModel> ItemBids { get; set; } 
} 

public class BidModel 
{ 
    [Key] 
    public int BidModelId { get; set; } 

    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")] 
    public DateTime DateCreatedUtc { get; set; } 

    [Required] 
    [Range(1, Int32.MaxValue, ErrorMessage = "The bid must have a positive value")] 
    public int Bid { get; set; } 

    [ForeignKey("ItemModel")] 
    public int ItemModelId { get; set; } 

    public virtual ItemModel ItemModel { get; set; } 
} 

すべてが正常に働いていたのが、私はItemModelBidModelを追加したとき(受け付けた入札)ItemBidsが空になりました。

[ForeignKey("BidModel")] 
public int? BidModelId { get; set; } 

public virtual BidModel BidModel { get; set; } 

誰でもこの動作を説明できますか?

+0

あなたは私のuは追加し、そのあなたのテーブルが設計されてどのように –

+0

を成功事例のないコードを表示してくださいすることができますか? 'BidModel'と' ItemModel'との間に 'ICollection 'を1対多に置くことは意味を成しますが、別の' BidModel'プロパティを持つと、動作が変更されます。 – Developer

+0

'ItemModel'は多くの' BidModel'を持つことができますが、 'ItemModel'に別の' BidModel'を受け取りました。これは不可能ですか?その余分な 'BidModel'を追加すると、何とか遅延ロードが混乱してしまいます。 – rhedin

答えて

0

私はそれを受け入れた入札(AcceptedBidModel)を削除して解決し、入札が受け入れられたかどうかを示すBidModelのブールを作成しました。ここで

は、新しいモデルは、以下のとおりです。

public class ItemModel 
{ 
    [Key] 
    public int ItemModelId { get; set; } 

    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")] 
    public DateTime DateCreatedUtc { get; set; } 

    ... 

    public virtual ICollection<BidModel> ItemBids { get; set; } 

    [NotMapped] 
    public BidModel AcceptedBid 
    { 
     get { 
      return ItemBids.Where(s => s.Accepted).SingleOrDefault(); 
     } 
     set {} 
    } 
} 

public class BidModel 
{ 
    [Key] 
    public int BidModelId { get; set; } 

    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")] 
    public DateTime DateCreatedUtc { get; set; } 

    public bool Accepted { get; set; } 

    [Required] 
    [Range(1, Int32.MaxValue, ErrorMessage = "The bid must have a positive value")] 
    public int Bid { get; set; } 

    [ForeignKey("ItemModel")] 
    public int ItemModelId { get; set; } 

    public virtual ItemModel ItemModel { get; set; } 
} 
関連する問題