Как сохранить значение из метода в БД?
Привет,
В настоящее время я борюсь с идеями о том, как сохранить значение из метода в базу данных.Мой метод заключается в следующем:
foreach (var item in Courses) { if (item.IsChecked) { SelectedCourses.Add(item); }
Теперь я получаю значение из флажка в коллекцию под названием "SelectedCourses".Это имеет один ко многим курсам,поэтому лектор может выбрать 3 курса, например, но фактическое значение сохраняется как "имя курса".У меня есть метод,который сохраняет все значения, и он работает, за исключением имени курса, потому что я понятия не имею, как сохранить несколько "имен курса" в базе данных, так как я понятия не имею, как может выглядеть синтакс.Это и есть метод сохранения:
<pre> public void SaveTeacher(object param) { int num = 0; using (DatabaseStudentsEntitiesLastStand db = new DatabaseStudentsEntitiesLastStand()) { using (var transaction = db.Database.BeginTransaction()) { try { RegisterTeacher c = new RegisterTeacher(); c.SNTeacher = SNTeacher; c.UserName = _UserName; c.pwd = pwd; c.fullName = fullName; c.education = education; db.RegisterTeachers.Add(c); SelectedCourses = new ObservableCollection<Cours>(); foreach (var item in Courses) { if (item.IsChecked) { courseName=item.courseName; SelectedCourses.Add(item); db.Courses.AddRange(SelectedCourses); } } num = db.SaveChanges(); transaction.Commit(); } catch (Exception e) { transaction.Rollback(); } } } }
И это delegatecommand вместе с привязкой в представлении:
saveCommand = new DelegateCommand(SaveTeacher); private DelegateCommand saveCommand; public DelegateCommand SaveCommand { get { return saveCommand; } set { if (saveCommand != value) { saveCommand = value; NotifyOnPropertyChange("SaveCommand"); } } }
<pre> <Button Content="Submit" Command="{Binding Path=SaveCommand,Mode=TwoWay}" CommandParameter="{Binding ElementName=coursesList}" HorizontalAlignment="Left" Margin="517,98.4,0,0" Grid.Row="3" VerticalAlignment="Top" Width="110" Height="40"/>
Что я уже пробовал:
.
F-ES Sitecore
Вам нужна отдельная таблица для хранения курсов. Если ваша родительская таблица (RegisterTeacher) похожа на
ID, SNTeacher, ...
1, Джон, ....
2, Дэйв, ...
затем вам понадобится таблица под названием "RegisteredTeacherCourse", которая будет выглядеть следующим образом
TeacherID, CourseID
1, 1
1, 2
1, 4
2, 6
2, 2
Это показывает, что учитель 1 (Джон) имеет курсы с идентификаторами 1, 2 и 4, а учитель 2 (Дейв) имеет курсы 6 и 2.
Это примерно то, куда вы пытаетесь добраться. Если вы загуглите "ado.net реализуйте отношение один ко многим данным" Вы найдете примеры того, как его кодировать, поскольку именно так называется этот тип данных. У вас есть "один" учитель, который может иметь "много" курсов.
Daniel Andrei Popescu
Hello,I have manage to do it and take the value :).I have instead a problem with saving the data into the database.I'm using entity framework and I have a DelegateCommand SaveCommand that saves all the data inserted by the lecturer.I have pasted the method that i'm using in order to save it and i'm using EF with database first.When I click the button,nothing happens,but if i put breakpoints to see if the data was passed from one value to another,it does,even the courseName.What should I do in order to make it work?I have tried to put a messagebox at the end that could confirm the registration,but I don't know if what i did was efective at all.