ADO.NET :: Entity Framework - How To Update A Running Production Environment
Feb 21, 2011
I have read some articles about the new enitity framework and I think it looks very cool from a development perspective.
considering a production environment loaded with data. How does one apply changes to the model? You cannot regenerate the model and in most large organizations, database changes are executed by DBS's and not developers. In such situaitons, it is the role of the developer to develop delta-scripts that the dba can execute.
My experiense with Hibernate (Java) and the like is that you have to pay double when using such frameworks.
I am starting a new project. I can either use the Entity Framework 4.0 or Linq to SQL as my data access layer. I don't have any experience using either product. I have read a lot about how Linq to SQL suffers in a disconnected environment like ASP.NET. I was wondering if the Entity Framework suffers from the same problems or if it is works well in a web environment. I was also wondering if someone could recommend a good tutorial or book on the Entity Framework 4.0.
I have an EDM, it includes the entities extension and history. My goal is to use history to keep track of all the changes made to extension entity. For example, if extension with ID 223 has its property 'Name_Display' changed - I want the history entity to record this.
I'm using ASP.NET with VB.NET. Where in my code do I put the hook to say, "update the history entity" and what should that hook look like?
I am mapping a stored procedure to an entity by right clicking on the entity (in the .edmx) and selecting "Stored Procedure Mapping." This brings you to a Mapping Details - "Name of Entity" Window that allows you to select the insert, update, and delete stored procedures associated with the Entity. It also maps the stored procedure parameter to the Entity "Property" (Column).
I'm gettin an error "error 2042: Parameter Mapping specified is not valid." The cause of the error is fairly obvious, in the Insert stored procedure that has been selected, a 'CHAR' parameter is being mapped to an Int32 Entity Property. I altered the stored procedure parameter to match the entity, I deleted the stored procedure, readded, and reslected it as the Insert function. I also cleaned, validated, updated model from database. No matter what I do, the parameter list in the mapping details doesn't reflect the change to the stored procedure. It's stuck on a char --> int32 mapping, even though it has been changed, like it's buried deep in meta data some where.
I'm writing a custom .NET MembershipProvider (not the built in one) and trying to update using Entity Framework. But of course i have no access to (Try)UpdateModel. How can i update it?
I have been updating my Entity Framework by simply right clicking and clicking on "update model from database". I usually go under the "Add" tab and then click the tables and click finish. I also use "refresh" sometimes as well. What are the differences between these? and also when I do refresh or add sometimes the entity comes out wrong or keeps some of the old information in cache, how can I just get the entity to match my database and clean out any of the old cached things.
I have a few entities I'd like to update at the same time. However I'd like to write individual update methods in each classes partial class file, for each entity and call them all at the same time. For example:
public sub UpdateEntity1() ... end sub
public sub UpdateEntity2() ... end sub
public sub UpdateEntity3() ... end sub
public sub UpdateAll() UpdateEntity1() UpdateEntity2() UpdateEntity3() end sub
My question is how do I manage the object context? do I create one object context in the class I'm calling UpdateAll(), then pass it as a parameter to each individual update method? Or do I create a new context for each Update? I'd like to use the same context because the object are related, and this would decrease the db calls to update all the records.
But, name may not have changed, it may only be a change to the content textbox.
The problem is that entity framework treats Name as changed just because I've set it's value, regardless of whether I've set exactly the same value or not.
Ideally, I would like EF to only mark things as changed if they genuinely have changed.
How should I solve simulation update, when one user updates already updated entery by another user?
First user request 'Category' entityobject, second user does the same. Second user updates this object and first user updates. I have field timestamp field in database that wa set to Concurrency Mode - Fixed.
How do I use a stored procedure to change one or more (but not all) fields of a entity in EF4? I have a stored procedure "ChangePassword" taking a username and and a password as parameters and a User entity containing properties for Username and Password as well as other properties. I want to be able to use this stored procedure from a function to update the password from a function in one of my repositories. How to do this?
I have a webservice which of course has to be .net 3.5 (a side note is does anyone know why you can't create a webservice using .net 4.0?).
Anyhow it is using entity framework, which I have recently discovered was a really bad mistake to try to use this in .net 3.5.
I have a table "Licenses" with the following columns: LicenseKey, ProductCode, OrderID, Seq, UserName.
In my asp.net 4.0 application I can simply do the following to perform an update:
[Code]....
But it appears there is no ExecuteStoreCommand in .net 3.5 with entity framework. Can anyone explain to me how to accomplish the same thing? The thing I need to point out is that because this is a multi-user access service. I need to verify that SQL will only update the given record where OrderID and Seq is what I tell it ONLY if the UserName is already null. So if two users process the same statement at the same time only one would work and the other would not because the sql should fail (or return 0, rather than a 1) for the second one.
I've pulling back an entity object from a database and I need to update the date to the DB server's date/time - usually you could accomplish this by setting it with the SQL getDate() function.
How can I accomplish this in the following scenario:
var client = context.client.Where(c=>c.clientID == 1).FirstOrDefault();
// the value needs to be the value of the server's current date, i.e, getDate()... not DateTime.Now client.someDate = <somevalue>; context.SaveChanges();
I have a table in my database with a one to many relationship to another table, which has a relationship to a third table:
[Code].....
This seems to work fine. My question to you good folks: Is there a correct way to do this? I tried following the making a custom model binder per the blog link I posted above but it didn't work (there was an issue with reflection, the code expected certain properties to exist) and I needed to get something going ASAP. PS - I tried to cleanup the code to hide specific information, so beware I may have hosed something up.
Is there a way to export a EF 4.0 Data Model to EF 3.5?
I looked around and found that we are not able to access EF 4.0 from a ASP.Net 3.5 project here: [URL]
Our project is the 1st to go to .Net 4.0 using Entity Framework and we (the team) were wondering if there was a way for the other projects that "might" need to access our data that are still using the .Net 3.5 framework.
I'm working on a new project where I have the luxury of working from a Model to Database approach using Entity Framework 4.
The project I'm working on is taking an agile approach where different phases will be rolled out over time.
Will the Model First approach work in my case? I noticed when you "Generate Database from Model" it recreates the entire schema from scratch which will obviously wipe all the data that is in the db. I was hoping for a more "Update Database from Model" approach where the db would just be altered to reflect the changes rather than recreated
I developed a web page using asp.net 2.0 and ajax toolkit on my laptop on Windows 7 and IIS 6. I have my ajax/atlas toolkit DLL in my bin. The updatePanel works fine and does not postback my page. But when i hosted my website on a dedicated server the page postback totally like i have no updatepanel/ajax in my page...
I am using : Windows server 2008, IIS 6Ajax 2.0 installed on the server. I don t understand what is the difference with windows server or IIS or something else?
I have a procedure in asp.net web site that gives strange result sometimes, I'm thinking to add some code to track it. My question is, in the production environment, is there any way that I can get the calling stacks like the one in the exceptions?
In my development environment, my CSS loads perfectly. But when I publish the files to the server, the CSS no longer loads.
Originally, when I had this problem, it was because I was denying access to unknown users for all directories. It was also occurring in both environments.
When I fixed that, the CSS started working just fine. But when I publish it to the server, it no longer works.
The website appears to function. I can log in, navigate pages and everything. It's just that the CSS doesn't work.
I checked the permission on the directory and it has access to NETWORK SERVICE, the admin account and IIS_IUSRS.
I have this website with english and portuguese support. In localhost everything works fine and the content is translated based on the querystring parameter named "lang". This chunk of code makes the trick in every page:
Thanks to the logger I can say for sure that this method is called in both cases (production and localhost). I have two resources files in App_GlobalResources folder: -WebSitemapGlobal.en-us.resx; -WebSitemapGlobal.resx;
When I try to run my ASP.NET app from my development environment I get the following error message: Compiler Error Message: CS1502: The best overloaded method match for 'mmars.Printing.printFunctions.SetPrintSummaryProperties(mmars.contextInfo, ref mmars.Printing.printObjSummary)' has some invalid arguments.
When I publish and run on our production server I don't get this error.It seems to compile fine when I build from the build menu (in fact if I change the second argument of the bolded function call below, i get a compiler error in visual studio), but now i've suddenly started getting this error message at runtime. So another question I have in addition to getting rid of the error is why is the .NET development server even trying to do JIT compilation on my project if it is already compiled into a DLL?
Printing.printObjSummary myPrintObj = new Printing.printObjSummary(); Printing.printFunctions.SetPrintSummaryProperties(ci, ref myPrintObj); printObjects.Add(myPrintObj);
Also, though there are no warnings at compile-time, when I get redirected to the page with that first compilation error there are many warnings like the following:
Warning: CS0436: The type 'mmars.MMARSSummaryDataItem' in 'c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oot3dad423c40569048App_Code.b0rgpkzr.4.cs' conflicts with the imported type 'mmars.MMARSSummaryDataItem' in 'c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oot3dad423c40569048assemblydl37179c19a345f948c_ece7ca01mmars.DLL'. Using the type defined in 'c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oot3dad423c40569048App_Code.b0rgpkzr.4.cs'.
What's the deal with that? Is the webserver complaining about name conflicts in the source file and dll resulting from the source file?