I need to have an entity that has two separate candidate keys where one of them is the primary key, which is a surrogate identity key, and another one that is an alternate key representing the real unique attribute. I need to have them both separately in my entity. Please note that I am not referring to composite or multi-column keys. Anyhow I need to have this on one of my entities in ADO.NET data model. Is it possible to do that? If yes please guide me.
The reason to have the second key is that I need another entity to have an association (and foreign key) relationship with first entity on the that key.
Update: I found a very similar situation to mine in the following question:
http://social.msdn.microsoft.com/Forums/en/adodotnetentityframework/thread/a248632a-d305-4c15-8e57-6742457cca94
It seems that EF v1 does not support this feature. Does anybody know if V4(literally the second version) has this feature or not? I have found the following but it does not seem to show any clues that this feature has been added to the current version: http://blogs.msdn.com/b/adonet/archive/2009/05/11/update-on-the-entity-framework-in-net-4-and-visual-studio-2010.aspx
Entity framework doesn’t support unique keys. In entity model your second key will be field as any other. You will not be able to create relations on that key and EF will not check that value of the key is unique. But if your model will be based on existing database with unique keys you will have this check on database layer.
Support for unique keys has been hinted at by the EF team but remains unavailable as of .NET 4.5.