Get The Id Of A New Record In SavingChanges Event On The Entityframework?
Jul 21, 2010
Im tring to implement some generic logging in the entityframework 4.0 using the SavingChanges event in the entity context.
I want to record details about any create/ update and deleted records including the id of the record being changed (which is always an int identity field). During the update and delete processes I can get the id for the record using
Dim AddedItems = Statemanager.GetObjectStateEntries(EntityState.Added)
For Each entry As ObjectStateEntry In DirectCast(sender, ObjectContext).ObjectStateManager.GetObjectStateEntries(EntityState.Added)
NewLogItem.RecordId = CInt(entry.EntityKey.EntityKeyValues(0).Value.ToString())
Next
But I obviously cannot get the id of the about to be inserted record during an insert becuase it hasn't been written to the database yet, is there a simple way around this?
View 3 Replies
Similar Messages:
Oct 28, 2010
I have Create and Edit forms for Categories. Columns are Id, CategoryName, Order, CreatedOn. On Create form I save the values for all but on Edit form I need to change only CategoryName. Below is the code. Problem is that on Edit form only CategoryName field exists which on submit button is passed to Edit Action. Whenever I update Order and CreatedOn becomes null because the values are not returned from form. Someone tell me any good approach how to Updated selected values in EF. Below is code.
Making multiple Get calls. Form is saving fine but I don't like the approach. Need clean approach. Anyone got better solution to thiis?
[Code]....
View 5 Replies
Dec 30, 2010
I am working on my first project with the Entity Framework and am having some difficulty displaying advanced information with the EntityDataSource and a ListView.
For example, given the two entities:
Item
Name
Price
Order
Number
Items <---- Navigation Property to Items contained in the Order
I want to display a list of all orders with a column with the total number of items in the order and a column with the sum of the prices of all items in the order.
I am using an EntityDataSource configured as follows:
<asp:EntityDataSource ID="eds" runat="server" ConnectionString="name=NDSEntities"
DefaultContainerName="NDSEntities" EnableFlattening="False" Include="Items"
EntitySetName="Orders"></asp:EntityDataSource>
In the ItemTemplate of the ListView, I can write the order number as follows:
<%# Eval("Number") %>
I had trouble figuring out how to display a count of items in the order. I tried using Items.Count() function in select statement in the EntityDataSource but that didn't work. Eventually I figured out I could do the following in my ItemTemplate:
<%# Eval("Items").Count() %>
Now I am stuck trying to get the sum of the items. I am stuck here. I have tried using
<%# Eval("Items").Sum(Function(i) i.Price)%>
but I get the following error:
Public member 'Sum' on type 'EntityCollection(Of Item)' not found.
This confuses me because I know that Sum is a method of EntityCollection(Of ).
My two questions are as follows:
Am I getting the item count correctly?
How should I go about getting the sum of the prices of the items?
View 1 Replies
Jun 14, 2010
With ASP.Net 4, is there any way that we can bind web-form controls to entity framework objects?
<asp:TextBox ID="UserName" runat="server" BoundTo="UserName" BindingSource="..."></asp:TextBox>
so just like in MVC I can
form.UpdateModel(userObj),
form.DisplayModel(userObj)
View 1 Replies
Jun 14, 2010
with asp.net 4, is there any way that we can automatically bind web controls (textbox, listbox, check, etc), to EF4 Objects?
View 2 Replies
Jan 27, 2011
SaveChanges can generate an UpdateException when an object added to the ObjectContext cannot be successfully created in the data source. This can happen if a row with the foreign key specified by the relationship already exists. When this occurs, you cannot use Refresh to update the added object in the object context. Instead, reload the object with a value of OverwriteChanges for MergeOption.
In a table, a foreign key column can have a single value multiple times. e.g. DepartmentID foreign key in Users Table: More than one User can have same DepartmentID foreign key.
So how can this cause an UpdateException ?
View 1 Replies
Jan 15, 2010
I would like to call a method in the ObjectContext which returns EntityCollection and have it sorted the way I want by default. For example, Imagine I have the following Category table/class:
CategoryID (PK)
Name
ParentID (FK_Category) foreign key
pointing to CategoryID itself.
(This table is the base for a tree structure of Categories and SubCategories)
Now, in my data model, the public partial class Category : EntityObject has a property which returns all Categories that have ParentID==CategoryID, in other words, EntityCollection<Category> SubCategories.
Alright, now i want to show in my page all the Categories and SubCategories by using Repeater:
<asp:Repeater ID="rptSubCategories" runat="server">
<ItemTemplate>
<%# Eval("CategoryID") %> - <%# Eval("Name") %>
<asp:Repeater ID="rptSubCategoryCategories" runat="server" DataSource='<%#Eval("SubCategories")) %>'>
<ItemTemplate>
<%# Eval("CategoryID") %> - <%# Eval("Name") %>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
Then in code behind, I set the DataSource:
IList<Category> categoryList = new CategoryProvider().GetAll();
rptSubCategories.DataSource = categoryList;
rptSubCategories.DataBind();
Simply and everything works! Except that, rptSubCategoryCategories doesn't gives sorted Categories by Name. The only way I found to do it, is to change its DataSource from:
DataSource='<%# Eval("SubCategories")) %>'
to:
DataSource='<%# ((EntityCollection<Category>)Eval("SubCategories")).OrderBy(p => p.Name) %>'
but I wish I could do something else to have a default sorting so i don't need to call the OrderBy. Something like Attributes like we do in DynamicData, following the tutorial at [URL] Setting the default sort column of an Entity with DisplayColumnAttribute. Unless somebody tells me it's impossible what I want to do.
Using .NET 4.0 BETA 2
View 1 Replies
Jul 6, 2010
I got a problem when getting some data out of my EntityFramework using Linq
Heres my code
[Code]....
Heres the ClientViewModel :
[Code]....
As you can se in the ClientViewModel the Users property is a List
But when trying to compile I get a error saying
Cannot implicitly convert type 'AdminMVC.Models.Clients_Username' to 'System.Collections.Generic.List<AdminMVC.Models.Clients_Username>'
View 2 Replies
Jan 23, 2011
How to display record in gridview using pageload event in vb.net ? i wanna use two SqlDatasource1 and sqldatasource 2 to display record in single gridview1
SqlDatasource1 will display all records from tabel where as SqlDatasource will be used to display particuar record search in table 1 but how to do this ?
View 1 Replies
Oct 2, 2010
I'm working on a project which is using EntityFramework 4 and I am using the entity objects as my business objects. I ran into an issue recently where I had a context declared in a using statement in a user control. The method the statement was in returned an entity object which got used in another control. So I had to detach the entity then attach it to the new context in the other control. I would like to avoid this if possible. What I'm thinking is I would like to declare a context in the master page and then pass that to any page/usercontrol that needs it so they are all using the same context and I don't have to write all these using statements.
My questions are these:
1) is it a bad practice to declare a context on Pre_Init/Page_Load and then dispose of it on Page_Unload?
2) if it is what is the best practice for handling them?
3) if I do go the route of declaring the context in the master page what is the best way to pass that to the pages/usercontrols?
View 1 Replies
Feb 22, 2011
I have not found any way to intercept or override calls to createquery in my datacontext. What I am trying to do is to allow for global filters, i.e. if a user has access to only a subset of entities I would like to filter away these on the lowest level possible. Is there a way to do this? I have tried several apporaches but no one worked out. Perhaps I lack patience or is just plain stupid, but I think it should be possible! So if anyone has any pointers to where
View 2 Replies
Feb 11, 2010
I am having some issues with my base class inheritance. I am currently employing Table per Type Inheritance for the following tables:
Database:
Members Table
- Member ID (PK)
- First Name
- Last Name
- Email
- ...
Students Table
- Member ID (FK)
- Credits
- Notes
- ...
Instructors Table
- Member ID (FK)
- Biography
- Office Hours
- ...
My Entity Data Model defines "Member" as the base class for both Students and Instructors, since members can be both students as well as instructors simultaneously. The problem, however, occurs when I attempt to get a list of Members objects. Because the database contains members who are indeed students AND instructors, the following exception is thrown:
All objects in the EntitySet 'CountyCollegeEntities.BaseMembers' must have unique primary keys. However, an instance of type 'CountyCollege.NET.Administrator' and an instance of type 'CountyCollege.NET.Student' both have the same primary key value, 'EntitySet=BaseMembers;ID=10016'.
I am beginning to think that I made a mistake by building these classes to inherit from Member although it has been ideal up until this point. But before I start ripping up all my existing code to remove this inheritance, I thought I would see if anyone has any tricks that would make this work. Any advice as to either how I can get around this error or a more appropriate way to structure my classes would be very much appreciated.
View 2 Replies
Jun 20, 2011
I have a web page that contains a couple of button controls. The page is pretty simple, just trying to add a record to the DB. When I click the Submit button, every function/procedure that is supposed to be executed does execute except the Button Click Event. I've checked to make sure all occurrencs of the control are named correctly in the code-behind as well as the javascript. I've set the debugger to debug every function/procedure as well and nothing happens. Why this would occur.
View 5 Replies
May 2, 2010
Cannot seem to find a good fit for my question so I will ask here.
Does Asp.Net 4.0 solve the problems with using Views with EntityFramework is not able to recognize primary keys.
View 2 Replies
Dec 20, 2010
I am populating the gridview on the basis of listbox selection . However, I am setting the datasource in the click event after listbox entry. When i am trying to update any record in the gridview this error gets thrown because the datasourceid from the aspx page has been removed. Code for reference -
protected void btn_save_Click(object sender, EventArgs e)
{
ArrayList list = new ArrayList();
foreach (object o in ListBox2.Items)
{
list.Add(o);
}
string str2 = null, str, host;
string str1 = "SELECT SYSTEMNAME, DATETIME, PDOWNTIME, UDOWNTIME, SYSDOWNMINS, REASON FROM PLANNED_DOWNTIME where ";
host = Convert.ToString(list[0]);
str2 = " ( SYSTEMNAME like '" + host + "'";
for (int i = 1; i < list.Count; i++)
{
host = Convert.ToString(list[i]);
str2 = str2 + " or SYSTEMNAME LIKE'" + host + "'";
}
str = str1 + str2 + " )";
string connectstring = "Data Source=SRCPA035\ovops;Initial Catalog=reporter;Persist Security Info=True;User ID=sa;Password=ril123";
DataTable dt = new DataTable();
SqlConnection connection = new SqlConnection(connectstring);
try
{
connection.Open();
SqlCommand sqlCmd = new SqlCommand(str, connection);
SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
sqlDa.Fill(dt);
if (dt.Rows.Count > 0)
{
GridView1.DataSource = dt;
GridView1.DataBind();
}
GridView1.DataSource = SqlDataSource1;
}
catch (System.Data.SqlClient.SqlException ex)
{
string msg = "Fetch Error:";
msg += ex.Message;
throw new Exception(msg);
}
finally
{
connection.Close();
}
}
View 6 Replies
Oct 27, 2010
I want to update object via entity framework
For example I have to changed object:
Obj1
Obj2
I want to save change to the Obj1 Only
[code]....
I try to Save with ApplyPropertyChanges but the data didn't saved
How can I update object?
View 2 Replies
Nov 16, 2010
I am using paging to my gridview (pagesize=4) . now i am in (X) page and i want to get (X+1) page top record or (X-1)page bottom record , how i can get .
View 2 Replies
Mar 21, 2011
I have a delete button bellow my gridview and I want a pop up to show when no record is selected and tell the user to first select a record. The button click event would show the pop up, but my gridview data blanks out.
Here is my code:
[Code]....
View 1 Replies
Feb 26, 2011
I'm very new on VWD, but I got the hang of it for the past 2 weeks(thank you for all the videos posted here in ASP.NET),but I'm really weak on the coding part(vb & c#),except for all the sample shown on the tutorials. Anyways, I have a simple project that
does insert, update & delete to SQL express using the details view. But to complete my project, I need to add a button that will create an event to restore the very last record inserted in SQL and display it back into the details view for minor modification
and nserted again as the newest record with the mod. I'm doing this so user, doesn't need to re-key-in redundant information, like names, original date & time etc, and just make modification on the description of the last record.....
View 2 Replies
Jun 24, 2010
I am counting from a table for that i have written code as below
protected void get_Id_Afterpoint()
{
int counter = 0;
string strSql = "select count(*) as ID from tblEnergy where ID=?";
OdbcCommand com = new OdbcCommand(strSql, con);
com.Parameters.AddWithValue("ID", DropDownList1.SelectedValue);
OdbcDataAdapter oda = new OdbcDataAdapter(com);
DataTable dt = new DataTable();
oda.Fill(dt);
if (dt.Rows.Count == 0)
{
lblID2.Text = "1";
}
else
{
counter = dt.Rows.Count;
counter = counter + 1;
lblID2.Text = Convert.ToString(counter);
}
}
there is no record related to DropDownList1.SelectedValue. but as i am counting if(dt.rows.count) and i put break point on the bolded part it shows 1 record. how it can be possible?
View 5 Replies
Oct 6, 2010
I want users to select a record in the GridView and then have that record open up in the Detailsview. How would I go about getting these two tools to communicate?
View 4 Replies
Aug 13, 2010
i have design a web application having suppliers table using SqlDatasource..
i have a master page in my design and other form are bound to a context menu..
Now i have displayed the records in the gridview..all i wanted is after i select a record in the gridview it will display the selected record in detailview from another aspx form..
i was able to create the link to another aspx form but the data that it display is the first data from the gridview not the data that i select.
View 3 Replies
Jul 6, 2010
i have one parent grid on which if user clicks a record ,the child details should get displayed on same page.
for example :
There is one department details table and employees table:
if user selects a record in department details grid,then employees in the selected department should get displayed in the next grid in the same page
View 2 Replies
Apr 27, 2016
How to Call a record on datalist by button click and display record on formview in model using Username
Here is what i tried
<asp:DataList ID="GetMergedAll." runat="server">
<asp:Label ID="Name" runat="server" Text="Label"></asp:Label>
<asp:Label ID="Post" runat="server" Text="Label"></asp:Label>
<asp:LinkButton ID="LinkButton6" runat="server">LinkButton</asp:LinkButton>
</asp:DataList>
protected void Page_Load(object sender, EventArgs e)
[Code] ....
HTML
model here
<asp:FormView ID="Post" runat="server">
<asp:Label ID="Name" runat="server" Text="Label"></asp:Label>
<asp:Label ID="Post" runat="server" Text="Label"></asp:Label>
</asp:FormView>
View 1 Replies
Mar 15, 2011
I was Make code to select top 3 record from db and I wont to enter every record in label or textbox
[Code]....
View 6 Replies