これが私の MVC コントローラーで、すべて問題ありません。
private UnitOfWork UOW;
public InventoryController()
{
UOW = new UnitOfWork();
}
// GET: /Inventory/
public ActionResult Index()
{
var products = UOW.ProductRepository.GetAll().ToList();
return View(products);
}
API コントローラーで同じメソッドを呼び出すと、Http 500 エラーが発生します。
private UnitOfWork _unitOfWork;
public TestController()
{
_unitOfWork = new UnitOfWork();
}
public IEnumerable<Product> Get()
{
var products = _unitOfWork.ProductRepository.GetAll().ToList();
return products;
}
デバッグは、実際に両方のコントローラーの UOW 呼び出しでデータが返されていることを示しています。次に、グローバルに顧客構成を追加しました。
public static void CustomizeConfig(HttpConfiguration config)
{
config.Formatters.Remove(config.Formatters.XmlFormatter);
var json = config.Formatters.JsonFormatter;
json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
}
APIコントローラーのみでまだHttp 500を受信しており、その理由について途方に暮れています。何か案は?
アップデート:
遅延読み込みを使用して問題が発生したようです。関連するプロパティを NON-VIRTUAL に設定すると、Test API は必要な JSON 文字列を提供しました。ただし、Vendor クラスを含める前は、VendorId しかありません。関連するクラスを含めたかったのです。何か案は?賢い人がたくさんいることは知っています。誰?