1
私は次のデータベース構造を持っていますが、その商品のデフォルト価格は、その商品の行が特定のrateIDで見つかった場合、その行が存在しない場合に上書きすることができます。価格はEntityCollectionなので、IQueryableインターフェイスは実装されていません。私のモデルの中にこのロジックを持ちたいのですが、現在の実装はうまく機能しますが、forloopを使用するのは最適ではないようです。EntityCollectionでfoorループを使用する代わりに?
テーブル
製品
ProductID
Name
Price
レート
RateID
Name
価格
PriceID
ProductID
RateID
Price
私の製品モデル:
public partial class Product
{
public decimal GetPrice(Guid rateId) {
foreach (Price p in Prices)
if (p.Rate.RateId == rateId)
return p.NewPrice;
return DefaultPrice;
}
}
マイコントローラ:
public ActionResult Prices() {
var products = storeDB.Products
.Include("Family")
.Include("Prices")
.OrderBy(product => product.Name)
.ToList();
var viewModel = new ProductPricesViewModel {
Products = products.ToList(),
Rates = storeDB.Rates.ToList()
};
return View(viewModel);
}