Сопоставление компонентов Nhibernate: родительский объект null в объекте значений при запросах из базы данных - PullRequest
3 голосов
/ 31 октября 2010

Я сопоставляю свое значение Object Item как компонент с последующей конфигурацией сопоставления

{
            Table("Product");
            Not.LazyLoad();
            Id(x => x.Id, "id");
            Map(x => x.Number, "number");
            Map(x => x.Name, "name");
            Map(x => x.Description, "description");
            Map(x => x.Status, "status");
            HasMany(x => x.ItemLines).Component(
                m =>
                {                                                                               
                        m.Map(x => x.ItemId, "itemid");
                        m.Map(x => x.Qty, "quantity");                      
                    }).Table("productitems").KeyColumn("itemid");
        }

Class structure 


public class ItemLine 
{
    public Product Product { get; set; }
    public Guid ItemId { get; set; }
    public int Qty { get; set; }




    public ItemLine()
    {

    }
    public ItemLine(Product product, Guid itemId, int qty)
    {
        Product = product;
        ItemId = itemId;
        Qty = qty;

    }

//Equality and GetHashCode implemented.....


}

Я могу вставить данные в базу данных, но при извлечении по идентификатору продукта свойство Product в строке товара равно нулю.

Нужно ли передавать какие-либо ссылки в Mapping>

Пожалуйста, помогите

Спасибо,

Mar

1 Ответ

5 голосов
/ 31 октября 2010

Хорошо.Решено методом проб и ошибок.

Добавить m.ParentReference (x => x.Product);

{ 
            Table("Product"); 
            Not.LazyLoad(); 
            Id(x => x.Id, "id"); 
            Map(x => x.Number, "number"); 
            Map(x => x.Name, "name"); 
            Map(x => x.Description, "description"); 
            Map(x => x.Status, "status"); 
            HasMany(x => x.ItemLines).Component( 
                m => 
                {                                                                                
                        m.Map(x => x.ItemId, "itemid"); 
                        m.Map(x => x.Qty, "quantity");

                        m.ParentReference(x => x.Product);   


                    }).Table("productitems").KeyColumn("itemid"); 
        } 

надеюсь, это кому-нибудь поможет.

...