Linq-> Сущности и внешний ключ таблицы выдачи - PullRequest
1 голос
/ 18 ноября 2010

C # и общий программный нуби здесь.

У меня есть две таблицы.Собственность и памятка.Там может быть много памятки на одну собственность.У меня, по крайней мере, мне кажется, формат создания объекта выполнен правильно.Проблема, которую я имею, состоит в том, что объект Memo не сохраняется с объектом Property.Кажется, что объект Property отлично сохраняется.


Так как я стог-нуби, я не могу публиковать изображения прямо в посте, поэтому я загрузил пару, которая показывает обе мои сущностиДиаграмма и диалоговое окно «Ссылочная связь».

www.jmtland.com / Pics / Diagram.png

www.jmtland.com / Pics /Ссылка% 20Constraint.png


            MTDBEntities1 dc = new MTDBEntities1();

            Property newProp = new Property();
            newProp.Address = t_Address.Text.Trim();
            newProp.City = t_City.Text.Trim();
            newProp.State = t_State.Text.Trim();
            newProp.Zip = t_Zip.Text.ToString();
            newProp.PropertyType = cb_PropertyType.Text.Trim();
            if (t_SizeMin.Text.Trim().Length != 0) { newProp.SizeMin = Convert.ToInt64(t_SizeMin.Text); }          // SizeMin is not required, so it won't be passed to the DB if there is no value.
            newProp.SizeMax = Convert.ToInt64(t_SizeMax.Text);
            newProp.SizeMetric = cb_SizeType.Text.Trim();
            if (t_PriceMin.Text.Trim().Length != 0) { newProp.PriceMin = Convert.ToDecimal(t_PriceMin.Text); }     // PriceMin is not required, so it won't be passed to the DB if there is no value.
            newProp.PriceMax = Convert.ToDecimal(t_PriceMax.Text);
            newProp.LeaseType = cb_LeaseType.Text.Trim();
            newProp.WebLink = t_WebLink.Text.Trim();
            newProp.Deleted = false;
            newProp.DateDeleted = null;
            newProp.DateCreated = DateTime.Now;

            Memo newMemo = new Memo();
            newMemo.Memo1 = t_PropertyMemo.Text.Trim();
            newMemo.MemoDateCreated = DateTime.Now;

            newProp.Memos.Add(newMemo);
            dc.AddToProperties(newProp);
            dc.SaveChanges();

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

Извините за нубизм.

Обновление: сначала я попытался сохранить таблицу свойств, а затем таблицу Memo.-Также не работает.

Я пробежал через отладчик и, похоже, есть данные, связанные с объектом Memo, а также объект Property содержит объект Memo, о котором идет речь, но по какой-то причине он неНе сохраняйте одновременно.

Я хотя бы по-другому, где я могу сохранить свойство, затем выполнить новый запрос, чтобы получить PropertID этого нового объекта, а затем принудительно сохранитьMemo объект с возвращенным PropertyID.

Проблема с этим методом заключается в том, что мое понимание структуры Entity будет неверным.Я, вероятно, смогу разобраться с этим, но если я не смогу заставить его работать должным образом с самого начала, я боюсь, что моей последующей реализации той же технологии будет препятствовать моя неспособность получить это правильно с самого началаидти.Я занимался программированием и раньше, и одна вещь, которую я выучил, это то, что если вы не выучите основы с первого раза, остальная часть вашего опыта может быть испорчена.

1 Ответ

0 голосов
/ 18 ноября 2010

Комментарий от RPM1984, похоже, сработал. Я не знаю, почему это сработало над тем, что я пробовал, но теперь я могу перейти к следующему 4-часовому блоку программирования одного метода!

У вас есть навигационное свойство называется "Мемос" на "Собственность" лицо на вашем EDMX? Я думаю последний линия должна быть dc.Properties.AddObject (newProp) - RPM1984 5 часов назад

...