I have an existing DB with which I would like to build a new app using EF4.0
Some tables do not have primary keys defined so that when I create a new Entity Data Model, I get the following message:
The table/view TABLE_NAME does not have a primary key defined
and no valid primary key could be inferred. This table/view has
been excluded. To use the entity, you will need to review your schema,
add the correct keys, and uncomment it.
If I want to use them and modify data, must I necessarily add a PK to those tables, or is there a workaround so that I don't have to?
I think this is solved by Tillito:
Entity Framework and SQL Server View
I'll quote his entry below:
We had the same problem and this is the solution:
To force entity framework to use a column as a primary key, use ISNULL.
To force entity framework not to use a column as a primary key, use NULLIF.
An easy way to apply this is to wrap the select statement of your view in another select.
Example:
SELECT
ISNULL(MyPrimaryID,-999) MyPrimaryID,
NULLIF(AnotherProperty,'') AnotherProperty
FROM ( ... ) AS temp
answered Apr 26 '10 at 17:00 by Tillito