2015-04-19 1 views
0

Выполняю операции CRUD с использованием EF. У меня есть сущность, определенная как Person_T, и она передается в качестве параметра методу, который выполняет операцию обновления.Операция CRUD, EntityFramework: Передача значения TextBox (Текст) методу, который принимает объект класса как параметр

public void UpdateEmployeeDetails(int personID, Person_T employee) 
    { 
     Person_T emp = new Person_T(); 

     emp = Context1.Person_T.Where(x => x.Person_IDNO == personID).FirstOrDefault(); 

     emp.FirstName = employee.FirstName; 
     emp.LastName = employee.LastName; 
     emp.CreatedDate = DateTime.Now; 
     emp.UpdatedDate = DateTime.Now; 

     Context1.SaveChanges(); 
    } 

Я извлекая значения TextBox для полей в моем файле CodeBehind следующим образом:

protected void UpdateDetails_Click(object sender, EventArgs e) 
    { 
     if(IsPostBack) 
     { 
      dtobj.firstNmae = TextBoxFN.Text; 
      dtobj.lastName = TextBoxLN.Text; 
      QS = Request.QueryString["ReqID"]; 
      inte = Convert.ToInt32(QS); 
      OBJECTCONT.UpdateEmployeeDetails(inte,TextBOXValues); 

     } 

    } 

Я пока не знаю, как я могу передать эти значения TextBox к UpdateEmployeeDetails метода(). Person_t имеет следующее определение:

public partial class Person_T 
{ 
    public int Person_IDNO { get; set; } 
    public Nullable<int> Address_IDNO { get; set; } 
    public string FirstName { get; set; } 
    public Nullable<System.DateTime> CreatedDate { get; set; } 
    public string LastName { get; set; } 
    public Nullable<System.DateTime> UpdatedDate { get; set; } 

    public virtual Address_Table Address_Table { get; set; } 
} 

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

Спасибо

ответ

0

Создать объект person_t, как показано ниже, и передать его в UpdateEmployeeDetails():

Person_T _person = new Person_T(){ 
    FirstName = TextBoxFN.Text, 
    LastName = TextBoxLN.Text, 
    //assign other values as above 
}; 

, а затем вызвать метод:

OBJECTCONT.UpdateEmployeeDetails(inte,_person); 

Полный код:

protected void UpdateDetails_Click(object sender, EventArgs e) 
    { 
     if(IsPostBack) 
     { 
      Person_T _person = new Person_T(){ 
        FirstName = TextBoxFN.Text, 
        LastName = TextBoxLN.Text      
      }; 

      QS = Request.QueryString["ReqID"]; 
      inte = Convert.ToInt32(QS); 
      OBJECTCONT.UpdateEmployeeDetails(inte, _person);  
     }  
    } 
+0

Большое спасибо. Он отлично работал и даже обновлял записи. Итак, как только я создаю объект, я могу передать столько значений, сколько хочу? – ChillBan123

+0

Да, вы можете присвоить значения свойствам вашего объекта. –

+0

Большое спасибо. – ChillBan123

0

Любые причины не делать этого?

OBJECTCONT.UpdateEmployeeDetails(inte,dtobj); 
+0

Это был мой первый подход. Выдает ошибку «Недопустимый аргумент». Ошибка Наилучшее перегруженное соответствие метода для 'ModelClass.ContextClass.UpdateEmployeeDetails (int, ModelClass.Person_T)' имеет некоторые недопустимые аргументы – ChillBan123

+0

Где объявляется 'dtobj'? – JNF

+0

Его объявлено в родительском классе IndividualDetails. Это код CodeBehind на странице IndividualDetails.aspx. – ChillBan123