Wcf - SOA Architecture For .NET With Entity Framework
Apr 1, 2011
I am redesigning a Solution's Architecture to implement SOA.
After doing the design changes I have come up with:
MySolution.Client.MyProject.Web ...... //ASP.NET WebSite
MySolution.Client.MyProject.Proxy .... //Service Proxy C# Library Project *[1]
MySolution.Service ................... //Service.cs for Service.svc is here
MySolution.Service.DataContract ...... //IService.cs for Service.cs is here *[2] [code]....
This project contains IService and Request/Response Classes
All methods in Service.cs takes the Request classes as input and return Response classes as output
Therefore this project is referenced by the 2 Client Projects(Web and Proxy), as it contains the IService and all of the Request/Response classes that will be required to communicate with Service.cs
*[3]MySolution.Model: This project contains the .edmx that is the Data Model of Entity Framework and some custom classes that are used in the project.
PROBLEM: Because I only use Request/Response classes to communicate between service and client, The MySolution.Service.DataContract project is only used by Service.cs and Repository.cs
And due to that all responses that Repository generates i have to map them to the properties of its respective response class (which make both the original returned entity, and the response class almost identical). But i am OKAY with it ...
e.g: GetCustomer() in Repository.cs method is called by Service.cs
GetCustomer() method in repository performs the LINQ query and return a "Customer" object
Service.cs then maps all the properties of "Customer" object to the "CustomerResponse" object
Service.cs then returns the "CustomerResponse" to the caller.
in this case most of the properties will repeat in both classes, if there is solution to this, its good, otherwise, I am fine with it.However, when Repository.cs's method GetCustomers() (Notice its not GetCustomer()) is called, it will return List of Customer object, and mapping this for return purpose would mean a "for loop" that iterates the collection and do the mapping ... this is NOT OKAY ...
is there any better way of doing this, considering I do not want to return "Customer" object without "CustomerResponse" as first of all it violates the SOA architecture, and secondly I don't want my Client Projects to have any reference to the Model or Repository projects.
View 3 Replies
Similar Messages:
Dec 25, 2010
recently i've studied on ADO.NET's Entity Model Framework and say 'wow' as ORM is one of the fevourite pattern i practice..but suddenly i've come to an ambiguous situation when i'm going to start. i usually follow the following 3-tier architecture..
1. UI Layer
2. BLL - business logic layer
3. DAL - Data Access Layer
a. DTO / DAO
b. Gateway (contains the sql query/stored procedure and connection with DB)
now when i'm going to use the Entity Model Design,where the DBML/ .edmx File should be placed? Because many a times i'm using the DBML file as DTO because of the mapped objects.. in the same time, sometimes DBML ( .edmx file in .NET 4.0) contains CRUD methods and stored procedured method as well as methods with different selection operations,- which should be in Gateway. so where the .edmx file should be placed !?!! IN DTO namespace !? or in Gateway namespace!
moreover sometimes there is no need for the BLL which breaks the rules of inter-layer-communication (UI > BLL > DAL.Gateway)! what makes me confuse is, what should be the ideal n-tier architecture when i'll use the ADO.NET Entity Model Design Framework
View 4 Replies
Oct 2, 2010
I am new to Entity frameworks-EF. As, EF is built on top of ADO.NET...If so, will there be any performance issue when we use it?Same way MVC also targets Test Driven , rapid application development only ..What speciality does it add for end-users?As per my understanding ASP.Net 2.0 itself is powerful without MVC and/or EF...
View 7 Replies
May 19, 2010
I am thinking to use entity model as DAL, how should I create the BLL then? What kind of datasourceobject should I use in the asp pages?
I am looking for best practice to use Entity framework 2 in the three layers design. I had experience at dataset with three layers design.
Should I use objectdatasource at the pages for gridviews? My guess is that entitydatasource by passed the BLL which is not good, so the only option left is the objectdatasource.
Could and should my BL object inherit those entity model in the DAL, so I dont need to recreate their object's property?
View 4 Replies
May 12, 2010
At work I need to create a new web application, that will connect to an MySql Database.
(So far I only have expercience with Linq-To-Sql classes and MSSQL servers.)
My superior tells me to use the entity framework (he probably refers to Linq-To-Entity) and provide everything as a service based architecture. Unfortunately nobody at work has experience with that framework nor with a real nice server oriented architecture. This speficic project I'm leading will be long-term, meaning multiple years, so it would be best to design it the way, that multiple target plattforms like asp.net, c# wpf, ... could use it)For now, the main target plattform is ASP.net
So I do have the following questions:
1) Where can I read best what's really behind service oriented architecture (but for now beginner tutorials work fine as well) and how to use it in best practise?
2) So far I can't see a real difference between Linq-To-Sql classes and the information I've googled so far on the 'entity framework'. So, whats the difference? Where do I find nice tutorials for it?
3) Is there any difference in the entity framework regarding the database server (MSSQL or MySQL)? If not, does that mean that code snipperts I will stumble across will word database independent?
View 3 Replies
Feb 1, 2011
I am using the ADO.NET Entity Framework for loading data from the database. The classes are directly mapped to database tables in the database. The problem is that these classes are not optimal for binding to the UI elements. As a result of this I have some custom entities which are populated at the service layer and returned. It is these custom entities (classes) to which I bind the UI elements. My questions on this are1. Is populating these entities at the service layer the most appropriate way to do this. I personally do not think so because if we introduce some additional UI elements which need different entities then I have to modify the service layer again.2. What is the best approach/pattern to get this done.
View 2 Replies
Nov 9, 2012
Any good example of Three tier architecture in entity framework 4.0 ...
View 1 Replies
May 26, 2010
I just tring to a complex (for me) with ado.net entity framework this is the structure: In practice it is a sort of group purchasing (Buyers) For each group of purchase (Buyer) should have the opportunity 'to select all products of the brands indicated in buyer I'm doing function to return correct data like this:
public List<Product> GetProductsByBuyer(int vBuyerId)
{
Buyersctx.Products.MergeOption = MergeOption.NoTracking;
return (from lProduct in Buyersctx.Products.Include("Brand").Include("Buyers")
where select lProduct).ToList();
}
View 2 Replies
Feb 10, 2010
I can't to understand clearly how to create strong and quickly application using EF. For example, I have class ForumPost (table ForumPost) for select one of record I write method like:
public ForumPost ForumPost(int ForumPostID)
{
return
(from i in _dataContext.ForumPostSet
where i.ForumPostID == ForumPostID select i).First();
}
all works. But on page (I use ASP.NET MVC) I should display info from another linked tables, ForumName (each post have ForumID) etc. So, I modify this method to:
public ForumPost ForumPost(int ForumPostID)
{
return
(from i in _dataContext.ForumPostSet
.Include("ChildPosts").Include("ParentPost").Include("Users").Include("Forums").Include("Tags").Include("ForumPostPolls")
where i.ForumPostID == ForumPostID select i).First();
}
ok, all works. Then I want to make some actions in model with ForumPost, i.e.
public void RootPost(int PostID, ref Models.ForumPost Root)
{
ForumPost post = ForumPost(PostID);
if (post.RootPost != null)
{
Root = ForumPost(post.RootPost.ForumPostID);
}
else
Root = post;
}
it works too. But problem is in speed. I not need in RootPost all those includes. So, I should to create one more method like:
private ForumPost ForumPostIncludes1(int ForumPostID)
{
return
(from i in _dataContext.ForumPostSet
.Include("ChildPosts")
where i.ForumPostID == ForumPostID
select i).First();
}
then ForumPostIncludes2, ForumPostIncludes3 etc... second way - redesign RootPost with LINQ expr, not with call another method. But in this way difficulties to change DB. third way? How to do it correctly?
View 1 Replies
Oct 25, 2010
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.
View 1 Replies
Nov 2, 2010
I am new to entity framework , it is really very good , but I want to know what is the difference between using entity framework with stored procedure or without stored procedure , which one the faster and what is the benefits for using stored procedures with entity framework.
View 1 Replies
Jun 30, 2010
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?
View 1 Replies
Feb 9, 2011
I get an cast exception when i am trying to insert an entity in Entity Framework (using code-first). From this code :
public virtual T Insert(T entity)
{
return Context.Set<T>().Add(entity);
}
The cast exception is like "impossible to cast ...Collection'1(Entity) to type (Entity)" I can't figure out why. I am pretty sure ive done everything right. Post entity
public class Post
{
public long PostId { get; private set; }
public DateTime date { get; set; }
[Required]
public string Subject { get; set; }
public User User { get; set; }
public Category Category { get; set; }
[Required]
public string Body { get; set; }
public virtual ICollection<Tag> Tags { get; private set; }
public Post()
{
Category = new Category();
if (Tags == null)
Tags = new Collection<Tag>();
}................................
View 9 Replies
Feb 10, 2011
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.
View 2 Replies
Aug 5, 2010
I am trying to add a new entity and have to refernce associated data to add it. I cannot load the Referencetables. Giving "The EntityReference could not be loaded because it is not attached to an ObjectContext." How do i complete this task in Entity Framework 3.5
[Code]....
View 1 Replies
Mar 31, 2011
I have a stupid problem with the Entity Framework. I get the following Exception:
[Code]....
I have an entity with a 4 fields representing the primary key. I copy it via serialization (works fine). I set the old entity to not valid (Datefield set to a date in the past, this field is part of the PK) and set the copied entity to DateTime.Now.Date. When I call context.AddObject I get the Exception above. I tried copying the entity via reflection but the entity has 3-4 references. And when copied, I get another Exception before even Adding the entity to the context. I also tried setting newObj.EntityKey = null and reset all the fields neccessary for the PK. I just want a whole copy of an entity with a different primary key (and some other fields changed too) and Create it in the database.
View 1 Replies
Sep 21, 2010
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?
View 3 Replies
Jan 5, 2011
I have an Events table and an InstallmentPlans table. The relationship is 0..1 : an Event can have 0 or 1 Installment plans. If I want to remove the existing InstallmentPlan for an event, how do I do this? Setting it to null doesn't seem to work:
_event.InstallmentPlan = null;
View 2 Replies
Feb 3, 2011
Here's a simple code snippet where I create a new Entity object and call SaveChanges() to create a new record in the mapped database table.
[Code]....
What I'm trying to figure out is whether there is a way to derive this new key for my entity, e, from the ObjectContext, m? The reason for this is that the way my actual code is structured, my entity object is already out of scope at the point where I call the SaveChanges() method.
View 4 Replies
Sep 24, 2010
I am trying to do something like this:
[Code]....
But ofcourse it is not working as I want to. The Ordering works on Question.Order, but I would also the
Questions.SubQuestions List to be ordered according to SubQuestions.Order
View 2 Replies
Feb 8, 2011
I'm using VS 2008 with SP1. I want to use SP in the entity framework. The SP uses join of more than 1 table to return data. Most of the online examples I show, use the single table. How to return data of more than one tables?
View 4 Replies
Nov 5, 2010
solve this problemi create example using Northwind database so i create a new website and add new ADO.Net Entity Data Model (.edmx) called Northwind.edmx and i add Categories and Products table inside this (.edmx) fileand add new ADO.Net Data Servuce called "ADODataService" and add it as WebReferences called NorthwindServiceso i add new web page and drag DropdownList and Gridview as i want to bind Dropdownlist to all categories and when i select category from Dropdownlist bind Gridview to all Products related to this categoryso my code
[Code]....
and my code
[Code]....
so when i select category from Dropdownlist nothing happen :(also you will find commented code in method BindCategory whuch is not work also :(
View 1 Replies
Oct 11, 2010
i have been using entity framework in win app. but i notice i cant use it in web app. is there a different way to do it in web
View 1 Replies
Feb 10, 2011
I've been trying to learn about the entity framework. I plan on using it in a rewrite of a site I'm doing.But everything I can find on it is on the 3.5 framework and they all mention that there will be changes in 4.0. Does anyone know of a good article, video series, and or tutorial on the entity framework in 4.0?I've worked a lot with Linq to Sql, so I don't think I'll have too much trouble working with the entity framework, but I'd like to learn more about the current version.
View 3 Replies
Mar 18, 2011
I have 3 tables in the database, with a Many to Many relationship:
Assessment(assessID, userID, A, B, C)Grade(gradeID, scoreA, scoreB, scoreC)AssessmentGrade(assessID, gradeID) [PK and FK]I can already Insert into the Assessment AND Grade tables without any problems.I cannot seem to figure out how to Insert into the AssessmentGrade table. There is no separate Entity, because there is only the PK/FK in the AssessmentGrade. I have looked at some tutorials, but none of them seem to address my situation.
View 6 Replies