Я закончил после лета скриншотов nhibernate и пытаюсь преобразовать его в беглый, просто ради знаний.
У меня есть два класса (очень просто)
public class Customer { ... }
public class PreferredCustomer : Customer { ... }
Они следуют table per sub class
стратегии и поэтому беглое отображение таково:
CustomerMap -
//nothing related to PreferredCustomer - the spec says not required
public class PreferredCustomerMap : SubclassMap<PreferredCustomer>
{
Map(x => x.CustomerSince);
Map(x => x.OrderDiscountRate);
}
Вот так.Мой тест не прошел, после проверки, он жаловался, что sql не может найти столбец customer_id
это sql, созданный hibernate:
SELECT customer0_.CustomerId as CustomerId1_0_,
customer0_.Version as Version1_0_,
customer0_.Firstname as Firstname1_0_,
customer0_.Lastname as Lastname1_0_,
customer0_1_.CustomerSince as Customer2_2_0_,
customer0_1_.OrderDiscountRate as OrderDis3_2_0_,
//here, customer0_1_.customer_id needs to be CustomerID really.
case when customer0_1_.Customer_id is not null then 1 when customer0_.CustomerId is not null then 0 end as clazz_0_
FROM [Customer] customer0_ left outer join [PreferredCustomer] customer0_1_ on customer0_.CustomerId=customer0_1_.Customerid
WHERE customer0_.Customer_Id=1
Он явно делает это только на присоединенной таблице PreferredCustomer,Не могу найти, что должно быть сделано.
Любые идеи, пожалуйста?
Редактировать: как я могу прочитать XML, созданный на беглом языке?это может быть хорошим началом.