Рассмотрим файл | Новый проект приложения WPF, который содержит:
Возьмите сгенерированный стиль из Generic.xaml и переместите его в Dictionary2. Затем объедините Dictionary2 с Dictionary1 и Dictionary1 с Generic следующим образом:
<!--Generic.xaml-->
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Themes/Dictionary1.xaml"/>
</ResourceDictionary.MergedDictionaries>
<!--Dictionary1.xaml-->
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionary2.xaml"/>
</ResourceDictionary.MergedDictionaries>
Затем добавьте экземпляр CustomControl1 в сетку MainWindow. (Эта часть необходима для воспроизведения проблемы. Проект всегда компилируется нормально - проблема проявляется только во время выполнения, и на словари нужно ссылаться.)
В Dictionary1.xaml я объединяю другой dict в той же папке , поэтому работает простой Source = "Dictionary2.xaml". Однако в Generic.xaml я должен использовать абсолютный URI.
public class BusinessPlan {
public Guid Id { get; set; }
public int Year { get; set; }
public string CustomerCode { get; set; }
public PreviousYearData PreviousYearData {get; set;}
}
public class PreviousYearData {
public Guid Id { get; set; }
public int Year { get; set; }
public string CustomerCode { get; set; }
// many more fields
}
Данные в таблице PreviousYearData предварительно заполняются в начале года до создания BusinessPlan, поэтому я не знаю, каким будет Id BusinessPlan, и не могу создать нормальный внешний ключ. Я думаю, что хочу присоединиться к данным о предыдущем году в BusinessPlan на основе двух столбцов Year и CustomerCode. Возможно ли это с помощью Fluent NHibernate? Есть ли другой подход, который имеет больше смысла?