Надеюсь, это заставит вас начать
Смотрите его в прямом эфире на http://ideone.com/l23He (используя stdin)
#include
#include
#include
const char* getfield(char* line, int num)
{
const char* tok;
for (tok = strtok(line, ";");
tok && *tok;
tok = strtok(NULL, ";\n"))
{
if (!--num)
return tok;
}
return NULL;
}
int main()
{
FILE* stream = fopen("input", "r");
char line[1024];
while (fgets(line, 1024, stream))
{
char* tmp = strdup(line);
printf("Field 3 would be %s\n", getfield(tmp, 3));
// NOTE strtok clobbers tmp
free(tmp);
}
}
Выход:
Field 3 would be nazwisko
Field 3 would be Kowalski
Field 3 would be Nowak
Один к одному отображению в nhibernate не работает способ, которым Вы думаете, что это делает. Это разработано так, чтобы у Вас было два класса, которые при сохранении к их соответствующим таблицам имеют те же первичные ключи.
Однако можно заставить его работать, но это не симпатично. Я покажу Вам, как затем предлагают некоторые альтернативы:
В Вашей Транзакции hbml:
<one-to-one name="Sequence" class="TransactionSequence" property-ref="Transaction"/>
В Вашем HTML Последовательности:
<many-to-one name="Transaction" class="Transaction" column="fk_Transaction_Sequence" />
Это должно сделать то, что Вы хотите, чтобы это сделало. Отметьте свойство - касательно.
Следующий вопрос, на котором Вы собираетесь отправить, собирается спросить, как Вы получаете ленивую загрузку на однозначных связях. Ответ, Вы не можете... хорошо, Вы можете, но он, вероятно, не будет работать. Проблема состоит в том, что у Вас есть свой внешний ключ на таблице последовательности, что означает, что nhibernate должен поразить базу данных, чтобы видеть, существует ли цель. Затем можно попытаться играть вокруг с ограниченным = "истинный/ложный", чтобы видеть, можно ли убедить это лениво загрузить однозначную связь.
В целом, это собирается привести к общей пустой трате Вашего времени.
Я предлагаю также:
Это сохранит Вас много головных болей в конечном счете.
Оказывается этим для моей ситуации a <join table>
отображение работало лучше всего. Я просто должен был удостовериться, что сделал свойства, которые прибыли из второй таблицы, были nullable типы, или она сделает вставку на сохранении, даже если ничто не изменилось. Так как мне не была нужна ленивая загрузка для второй таблицы, это работает отлично. Я уверен, что, возможно, заставил парные many-one отображения работать, но это не было интуитивно и кажется более сложным, чем опция объединяющей таблицы, однако <join table>
только доступно в NHibernate 2.0 и.