Mapping data from 2 tables to 1 entity - Entity Fr

2019-01-23 20:39发布

问题:

I am stuck here.

Is it possible to map data from 2 different tables to 1 entity in Entity Framework 4.

I have a bunch of employees in one table, and in the other I have som project information. I would like to combine these 2 tables in one Entity, and keep the tracking features etc., is that possible?

I do not want to use a function import, but do it solely through the Entity Model.

Can anyone help - when I try to do it, i get the following error all the time:

Error 3024: Problem in mapping fragments starting at line 2354:Must specify mapping for all key properties (MyProjectTable.PSInitials, MyProjectTable.ProjectID) of the EntitySet MyProjectTable.

Both key are mapped to their respective tables. The new Entity are made with MyProjectTable as the basetable.

The relation between the 2 tables is a 1-*

Hope you can help.

/Christian

回答1:

You cannot map two tables with a one-to-many relationship to one entity. If you don't want projecting the results into one object in code, consider creating a view and mapping it instead.

According to http://msdn.microsoft.com/en-us/library/bb896233.aspx

You should only map an entity type to multiple tables if the following conditions are true:

  • The tables to which you are mapping share a common key.

  • The entity type that is being mapped has entries in each underlying table. In other words, the entity type represents data that has a one-to-one correspondence between the two
    tables; the entity type represents an inner join of the two tables.



回答2:

The reasons for doing this are quite straightforward - for example, a table of data points that all have one of five 'types'. Obviously the 'type' will be a separate table for the sake of normalisation, but from an application point of view (working with the data) it makes more sense to have all properties in a single entity.

So we can't do this with Entity Framework - a supposed Object-Relational-Mapper. What, then, is the point of using such a framework?