您可以从存储模型中获取实际的字符串“Person_Id”
,但无法将该属性/列标识为外键。为此,您将需要Person_Id
存在于概念模型中。我仍然不太明白为什么您不希望在模型中使用它,但是这是从存储元数据中获取它的方法:
using ( var context = new YourEntities() )
{
var objectContext = ( ( IObjectContextAdapter )context ).ObjectContext;
var storageMetadata = ( (EntityConnection)objectContext.Connection ).GetMetadataWorkspace().GetItems( DataSpace.SSpace );
var entityProps = ( from s in storageMetadata where s.BuiltInTypeKind == BuiltInTypeKind.EntityType select s as EntityType );
var personRightStorageMetadata = ( from m in entityProps where m.Name == "PersonRight" select m ).Single();
foreach ( var item in personRightStorageMetadata.Properties )
{
Console.WriteLine( item.Name );
}
}