by Naveen
18. November 2011 08:53
In previous post How to insert new record using Entity Framework,
I discussed one aspect of CRUD operation in an application or process. In this post I will talk about another aspect of the process, how to update a record
using Entity Framework. If you are building some kind of business intelligence aplication where only action you have to take is read the data, then
you may not be interested in UPDATE part of the process. But most of the applications require you to undertake whole spectrum of operations. And UPDATE
is big part of the process.
The process of updating database records using Entity Framework is pretty straight forward. In previous post you saw that you use the
collection property of Data Context to add new object in it and then call SaveChanges method. You will still be using
SaveChanges method. Only difference is that you are not operating on the collection object. First you will use LINQ
query on Data Context to get instance of the record object. Then make the changes to that object and then call SaveChanges. Entity Framework
keeps track of what records are being changed when you change any property value of an object. When you call SaveChanges, it prepares a list
of objects that need to be updated. And then take appropriate action. All the tracking is transparent to you. The following code snippet
shows how you can update record using Entity Framework.
protected void OnUpdate(object sender, EventArgs e)
{
if (!ValidateInput())
{
ErrorMessage_Label.Visible = true;
return;
}
decimal billRate = 0.0M;
if (!string.IsNullOrEmpty(BillRate_TextBox.Text.Trim()))
{
decimal.TryParse(BillRate_TextBox.Text.Trim(), out billRate);
}
var displayName = AntiXss.HtmlEncode(DisplayName_TextBox.Text.Trim());
if (string.IsNullOrEmpty(displayName))
{
displayName = AntiXss.HtmlEncode(FirstName_TextBox.Text.Trim());
if (!string.IsNullOrEmpty(AntiXss.HtmlEncode(LastName_TextBox.Text.Trim())))
{
displayName += string.Format(" {0}", AntiXss.HtmlEncode(LastName_TextBox.Text.Trim()));
}
}
var dataContext = new PMDataContext(Global.ConnectionString);
var member = (from memberData in dataContext.Members
where (memberData.CompanyId == _thisCompany.CompanyId
&& memberData.MemberId == _thisMember.MemberId)
select memberData).First();
member.MemberFirstName = AntiXss.HtmlEncode(FirstName_TextBox.Text.Trim());
member.MemberLastName = AntiXss.HtmlEncode(LastName_TextBox.Text.Trim());
member.MemberDisplayName = displayName;
member.Active = _thisMember.Active;
member.Deleted = _thisMember.Deleted;
member.BillingRate = billRate;
member.Availability = Convert.ToInt32(Availability_Dropdown.SelectedValue);
try
{
dataContext.SaveChanges();
}
catch (Exception ex)
{
// TODO: Log the exception.
System.Diagnostics.Debug.WriteLine(ex.Message);
}
}
The implementation gets record for a specified Member using LINQ query. Then updates various values. And at the end
calls SaveChanges. Very simple and straightforward process.
Sale Coupons
Deals Of The Day