Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Entity Framework. Передать значения внешних ключей в базу / 4 сообщений из 4, страница 1 из 1
16.08.2013, 05:49
    #38368381
talja
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Entity Framework. Передать значения внешних ключей в базу
Всем доброго времени суток!
Начала разбираться с Entity Framework(версия 4.1 CTP5) на примере небольшой программки-регистратор телефонных звонков. Использую подход CodeFirst. Описала несколько классов, которым в базе соответствуют сущности, связанные внешними ключами:
public class Department
{
[Key]
public Guid DepId { get; set; }
public int DepN{get;set;}
public string DepName{get;set;}
public int Arch{get;set;}
}

public class State
{
public Guid StateId { get; set; }
public string StName { get; set; }
public int Arch{ get; set; }
}

public class UserCallReg
{
public Guid UserCallRegId { get; set; }

[Required(ErrorMessage = "Укажите ФИО.")]
public string FIO { get; set; }

[Required(ErrorMessage = "Укажите отдел.")]
public Department SubjectDep { get; set; }

[Required(ErrorMessage = "Укажите должность.")]
public State SubjectState { get; set; }

}
UserCallReg- это класс, который содержит сведения о пользователе, зарегистрировавшем звонок.

Описала класс
public class PhoneCallRegDb:DbContext
{
public DbSet<Department> Departments { get; set; }
public DbSet<State> States { get; set; }
public DbSet<UserCallReg> UserCallReg { get; set; }
}
Создаю экземпляры объектов и пытаюсь передать сведения в базу:

DataRowView dgv;
Department dep = new Department();
dgv = (DataRowView)cb1.SelectedValue;
dep.DepId = (Guid)dgv.Row.ItemArray[0];

State st = new State();
dgv = (DataRowView)tb2.SelectedValue;
st.StateId = (Guid)dgv.Row.ItemArray[0];

UserCallReg ucr = new UserCallReg();
ucr.UserCallRegId = System.Guid.NewGuid();
ucr.FIO = tb3.Text;
ucr.SubjectDep = dep;
ucr.SubjectState = st;

using (var db = new PhoneCallRegDb())
{
db.PhoneCalls.Add(pc);
db.SaveChanges();-----> и вот здесь возникает ОШИБКА!
}

Думаю, проблема именно во внешних ключах, так как сведения в таблицы без внешних ключей передаются без проблем.

Чего я не доглядела, подскажите, пожалуйста.
...
Рейтинг: 0 / 0
16.08.2013, 06:10
    #38368382
talja
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Entity Framework. Передать значения внешних ключей в базу
Ошибка следующего содержания: "При обновлении записей произошла ошибка. Подробные сведения см. во внутреннем исключени"
...
Рейтинг: 0 / 0
26.08.2013, 11:46
    #38377240
talja
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Entity Framework. Передать значения внешних ключей в базу
Разобралась. Вот то, что мне очень помогло
http://habrahabr.ru/company/microsoft/blog/134160/
Может на будущее кому пригодится
...
Рейтинг: 0 / 0
27.08.2013, 22:14
    #38379304
lbppb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Entity Framework. Передать значения внешних ключей в базу
taljaРазобралась. Вот то, что мне очень помогло
http://habrahabr.ru/company/microsoft/blog/134160/
Может на будущее кому пригодится

MVC устарел. MVVM последний писк моды.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Entity Framework. Передать значения внешних ключей в базу / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]