関連オブジェクトのプロパティに基づいて、単一のビジネス オブジェクトをロードしようとしています。この場合、Material および Plant に対して単一の関係を持つ ExtendedMaterial があります。
このメソッドは AppServer クラスにあります。このコードで添付のテストを実行すると、正しい結果と合格のテストが得られますが、行のコメントを外すと
Broker.GetBusinessObject<ExtendedMaterial>("Plant.PlantCode LIKE " + plantCode);
その後、例外が発生しますHabanero.Base.Exceptions.InvalidPropertyNameException : The given property name 'PlantCode' does not exist in the collection of properties for the class 'ExtendedMaterial'
私は何を間違っていますか?
public ExtendedMaterial GetExtendedMaterial(string materialCode, string plantCode)
{
// return Broker.GetBusinessObject<ExtendedMaterial>("Plant.PlantCode LIKE " + plantCode);
return Broker.GetBusinessObjectCollection<ExtendedMaterial>("Plant.PlantCode LIKE " + plantCode).FirstOrDefault();
}
[Test]
public void GetExtendedMaterial_WhenExists_ShouldReturnExtendedMaterial()
{
//---------------Set up test pack-------------------
var material = CreateSavedMaterial();
var plant = GetBOTestFactory<Plant>().CreateSavedBusinessObject();
var extendedMaterial = CreateSavedExtendedMaterial(plant, material);
IAppServer appServer = new AppServer(CreateDeviceManagerWithDevice());
//---------------Assert Precondition----------------
Assert.AreSame(plant, extendedMaterial.Plant);
Assert.AreSame(material, extendedMaterial.Material);
//---------------Execute Test ----------------------
var actualExtendedMaterial = appServer.GetExtendedMaterial(material.Code, plant.PlantCode);
//---------------Test Result -----------------------
Assert.AreSame(extendedMaterial, actualExtendedMaterial);
}