私は例に従っており、次のようなクラスがあります。
public class Price
{
private decimal _sellingPrice;
private decimal _rrp;
public Price(decimal RRP, decimal SellingPrice)
{
_rrp = RRP;
_sellingPrice = SellingPrice;
}
}
このクラスは、LINQ を使用してテーブルからクエリされた値で構築されます。
var products = from p in new ShopDataContext().Products
select new Model.Product
{
Id = p.ProductId,
Name = p.ProductName,
Price = new Price(p.RRP, p.SellingPrice)
};
この例では、これは機能しているように見えますが、次のエラーが発生しています。
Price = new Price(p.RRP, p.SellingPrice)
The best overload method match has some invalid arguments
Argument 1: cannot convert from 'decimal?' to 'decimal'
p.RRP と p.SellingPrice の値はテーブルから System.Decimal 型として取得され、デフォルトで null 可能であるように見えるため、例外が発生します。不足しているものはありますか? 私はC#を試していますが、デフォルトで厳密な言語であることを知っているので、オフにしてこれを機能させるオプションはありません。
あなたの洞察に感謝します。