C# - Entity Framework 4 TPH Inheritance - Change One Type Into Another?
Nov 3, 2010
I have found some information regarding this but not enough for me to understand what the best practice for is for this scenario. I have your typicaly TPH setup with an abstract base class "Firm". I have several children "Small Firm", "Big Firm" etc inheriting from Firm. In reality I actually have different realistic classifications for firms but I am trying to keep it simple in this example. In the database as per TPH I have a single Firm table with a FirmTypeId column (int) that differentiates between all these types. Everything works great except I have a requirement to allow a user to change one type of firm into another. For example a user might have made a mistake when adding the firm, and would like to change it from Big Firm to Small Firm. Because entity framework does not allow exposing the discriminating database column to be exposed as a property, I don't believe there is a way to change one type into another via EF. The way I see it I have two options:
Don't use TPH. Simply have a Firm Entity and go back to using .Where(FirmTypeId == something) to differentiate between the types. Execute SQL directly using context.ExecuteStoreCommand to update the FirmTypeId column of the database.
I've seen a post where people suggest that One of the tenets of OOP is that instances cannot change their type. Although that makes perfect sense to me, I just don't seem to be able to connect the dots. If we were to follow this rule, then the only time to use any kind of inheritance (TPH/TPT) is when one is sure that one type would never be converted into another. So a Small Firm will never become a Big Firm. I see suggestions that composition should be used instead. Even though it doesn't make sense to me (meaning I don't see how a Firm has a Big Firm, to me a Big Firm is a Firm), I can see how composition can be modeled in EF if the data is in multiple tables. However in a situation where I have a single table in the database it seems it's TPH or what I've described in #1 and #2 above.
View 2 Replies
Similar Messages:
Mar 12, 2010
I have a Consumer class and a BillableConsumer : Consumer class. When trying to do any operation on my "Consumers" set, I get the error message "Object mapping could not be found for Type with identity Models.BillableConsumer.
From the CSDL:
[code]....
Is this because I did not specifically add the BillableConsumer entity to the object set? How do I do that in a POCO scenario?
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
Feb 18, 2011
If I have Database Stored Procedure retrun Complex type (Contain from Columns for 2 tables) ( Composite) and No Relation between them so i can't use Navigation Property ... so how can I use That in ADO.NET Framework specially when i try to use Add Function Import i didn't find any thing else None, Scalars, Entites.
View 1 Replies
Sep 7, 2010
First and foremost ... I already made a few changes in the template, the most important one changing the methods generated for stored procedures with OUTPUT parameters and no resultset so that instead of instantiating a few OutputParameter objects, passing them to the method and extracting the values (all without any type checking) you just call the method with a few "out someType?" parameters so I do not need the very basics. I am totally confused by all those GlobalItem, EdmProperty,BuiltInTypeKind, TypeUsage and all this made of objects, all alike and all different though so as soon as I need more data than what's already used by the template I run into problems :-(What I would like is to change the WritePrimitiveTypeProperty() so that it outputs [StringLength(xxx)] for all char, varchar, nchar and nvarchar properties. But I can't find a way to get from an EdmProperty in the model to the database type in the store.anyone is interested here's the modified stored procedure mapping code for the template. The first code replaces the original in the .tt:
[Code]....
the second needs to be added into a copy of EF.Utility.CS.ttinclude that you add to your project and reference from the .tt
[Code]....
View 4 Replies
Nov 3, 2010
how to change the database while using ADO.Net Entity Framework?
I have two identical databases. I want to change the db. Can i change it through web.Config?
Like LINQ to SQL ?
View 2 Replies
Oct 11, 2010
Is there any way of tracking EF entities changes between contexts for ASP.NET applications?
Self-Tracking entities doesn't work well for me as it is primarily designed for WCF. And all approaches for tracking changes for POCO I have found are oriented on shared context.
View 1 Replies
Sep 16, 2012
I have a stored procedure in SQl and i am calling through Entity framework through import functions. Stored procedure is returns columns from 2 different tables.. now what should be return type at Entity framwork end ?
View 1 Replies
Mar 18, 2011
I am making a web project now. And i meet some problems working with Entity Framework. My program needs to have dynamic model. I try to explain. So i have classes and database is created from them. At the beginning of work program checks in folder Modules for assemblies and looks for classses that needs to be created as tables in database(this classes have to become a part of ef model). And i need at runtime create database.If some new classes was added so add this tables to database, but not recreate it(as it is made by default). If i delete classes the tables are not deleted.
View 2 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
Oct 11, 2010
I am currently trialing EF4 code-first. My POCO classes inherit from an Audit class that contains CreatedBy, CreatedOn, UpdatedBy, UpdatedOn. I was hoping the framework would include the Audit properties in my Action table when creating my database, however this doesn't appear to be the case. Does anyone know how to enable this without overriding the OnModelCreating() method?
Public Class Audit
Public Property CreatedOn as DateTime
End Class
Public Class Action
inherits Audit
Public Property ActionId As Int32
End Class
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
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