ADO.NET :: Entity Framework With Multiple Database Servers
Feb 7, 2011
We have an IVR product that reads a configuration database for callflow information. I am writing a tool for our implementation team that will allow them to add/delete/update the data in the configuration database. Once the tool is in production, the implementer will use only the production release of the tool to modify the configuration database in all four of the IVR regions (Dev, QA, Cert, and Prod). Each region has its own database with identical schemas. The tool has 'tabs' across the top for each region. If a user is currently working in the Dev region and clicks the QA tab, how do I switch my connection from the Dev db server to the QA db server?
I have a model that consists of Order, OrderLine, Product.
I want to create an Order and add OrderLines (each OrderLine related to a Product). I create the Order and add new OrderLines to it. Between posts I store the Order entity in Session (or ViewState). Just so you know I have added suppport for binary serialisation which works fine.
The relationship is therefore Order > OrderLine(s) > Product(s).
You might have already guessed what the problem is - that when I SaveChanges() I get the usual 'AcceptChanges cannot continue because the object's key values conflict with another object in the ObjectStateManager.' error.
I have referred to a number of articles online but none seem to handle this case (where I have the relationship across more than two entities) e.g. [URL].
This must be a very common requirement surely? Is there anyone out there doing the same kind of thing with Entity Framework (and without using DTOs etc)?
i am using EF4 and StructureMap in an asp.net web application. I am using the repository/unit of work patterns as detailed in this post. In the code, there is a line that delegates the setup of an ObjectContext in global.asax.
EntityUnitOfWorkFactory.SetObjectContext(() => new MyObjectContext());
On the web page code-behind, you can create a generic repository interface like so ...
My question is what is a good approach to refactoring this code so that I can use more than one ObjectContext and differentiate between them in the code-behind? Basically i have two databases/entity models in my application and need to query them both on the same page.
A relative newcomer to .net MVC2 and the entity framework, I am working on a project which requires a single web application, (C# .net 4), to connect to multiple different databases depending on the route of access, (ie subdomain).
No problem with this in principle and all the logic is written to transform the subdomain into an entity connection and pass this through to the Entity Model.
The problem comes with the fact that the different database whilst being largely similar in structure contain 3 or 4 unique tables bespoke to that instance.
To my mind there are two ways to solve this issue, neither of which i am sure will be possible.
1/ Use a separate entity model for each database. -Attempts down this route have through up conflicts where table/sp names are the same across differnt db's, or implicit conversion errors when I try and put the different models in different namespaces. or
2/ Overwrite the classes which refer to the changeable database objects based on the value of a base controller property.
My question is if either of theser routes can ever work in principle or if i should just give up on the EF and connect to the dtabases directlky using ADO. Perhaps there is another way to solve this problem i haven't thought of?
So, have a search form where users can enter one or more keywords, these keywords are then held in a List<string> called keywords. Now using Entity Framework have an Organisation entity with a Name field. What I want to do is select those organisations whose name contains all the keywords. I don't care if they are in the right order or not but it just contain all the keywords. Also organsiations is a big table in the database so I don't want to materialise all the organsiation objects on the server and then loop through them. So what I'm looking for (excuse my LINQ naivety here) is equivalent to the non-existent LINQ statement:
[Code]....
I'm sure this must have already been answered but just can't find it.
I want to write a query in Entity Framework that has multiple joins. The only problem is the tables arn't related using their primary / foreign keys (its the Umbraco database), as such I can't use .Include and the Navigation properties.
Essentially the query I would like to run is this:
select t.*, n.* from cmsContentType t inner join cmsContentTypeAllowedContentType a on t.nodeId = a.Id inner join vicinity.DocumentTypeExtendedProperty x on x.UmbracoDocumentTypeId = t.pk inner join umbracoNode n on n.id = t.nodeId
I have two EF entities mapped to cmsContentType and umbracoNode as such I would like them to be populated as if I was running the query like
var q = from p in cmsContentType.Include("umbracoNode")
i'm trying to use Entity Framework to insert into SQL SERVER 2005, using Visual studio 2008.the following codes are a Button onclick event,I want to insert into DB multiple rows at a time
[Code]....
however this does not work, it seems we can only insert into DB only one row at a time
Problem is, I also want to show the viewer the available number of spots in the room. But this requires somehow pull in either the current_occupancy / max_occupancy or in performing a calculation (e.g. max_occupancy - current_occupancy = actual_available) and then returning that with the room.
The end result I'm looking for is to return each room in a button control with text that looks like this: "Room 1 - 2 Open" "Room 8 - 1 Open" and so on
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.
All I am trying to do is to make an update to an existing User and then save the changes to the database. I fooled around with different options and can see that I can make the change to the context during Page_Load, but it does not commit the changes to the Database.
As a follow on from this question I'm building a custom server control to be placed on a Sharepoint 2010 master page. The idea behind this is that it will display a menu that is dynamically populated from the database. As this is a server control, I'm building it in a dll but I've run into a small snag. As it has to connect to the database, I need to store the connection string somewhere (and have it able to be configured based on target configuration (dev/test/prod). I was intending to the user the Entity Framework as my ORM but i'm confused as to where the connection string is to be stored. In a normal ASP.NET web app it goes in the web.config, but this is a server control in a external DLL.
Where do I store the connection string so that I can just build and deploy the assembly containing the server control.
EDIT:
Before I post a bounty, I have tried using an embedded resource XML file to hold the connection string and while this works, I'm curious as to if this is best practice/a better way?
I have an ASP.NET application with existing business classes and a database schema. (which I would like to keep) Currently I am using ADO.NET for the DAL, but I would like to switch to some advanced technology there for easier data retrieval.
Is EF applicable to my situation? Can I use it without splitting up my business classes and auto code generation? Can LINQ to SQL solve my problem better?
All I want to do is map my existing classes to the existing tables and dont have to handle details of the data retrieval myself.
I'm working on an application that is connected to the online MSSQL database and everything is working fine.The model I'm using is entity model.The problem is that I have to change the connection string from the online database to the local one,but I don't know how.Creating new model isn't an option.I tried changing the connection string in web.config,but errors are the only thing I get.
I am working with VS 2010, Entity framework, SQl-Server 2005, ASP.Net web forms. Currently, I am working on the Data access layer library which soon will be a web service, using Entity Framework collaboration with different design patterns like repository pattern and some best practices that posts in different blogs. I am also test each repository using the Unit testing project. Thumbs up! Working fine.
The thing I am worried about is, how much is good for retrieving data from a table that can contain 80-100k records ?
If I want to be able to have a table Consultant, which is the user and their personal information, and I want this user to be able to select their proficiency in a number of Programs (software) on a scale from 0-5 (zero being no experience whatsoever), how do I do this best?
I mean I could have a Consultant table with a one-to-many relationship to a Program table, and then have all the limited Programs availalbe loaded by an XML file or something, and for each Consultant associate all the Programs and their Levels of proficiency. But that seems very wrong and inefficient.
It seems to me I should have a table with all the (limited number of) Programs, and then by some sort of association between the two by Ids. But I can't get my head around how to do this. I'm thinking many-to-many... But first, is this correct? Secondly, how do I do this in an Entity Framework Model? I usually create my database code first, i.e. create the EF model, and then generate database from model. Will I get a junction table where I can add the Level field, because basically a Consultant HAS A Program with a Level, or actually a list of Programs each with a Level.