2011-07-18 58 views
0

我新的實體數據框架 我有表與實體數據只有外鍵訪問表框架

Actions (Actionid (pk) ,Actionname , ...) 
Roles (Roleid(pk) , Rolename , ....) 
ActionRoles(Actionid(pk,fk) , Roleid(fk)) [Mapping Table] 

請建議我的LINQ得到RoleNames爲Perticular ActionID (注:沒有在entitydesigner.cs與名稱ActionRoles創建爲,因爲它沒有任何其他的列名,然後ActionIdRoleID

預先感謝您

+0

在你的'ActionRoles'中,兩個FK都必須是PK的一部分,否則你的Action將只有一個角色。 –

+0

@Ladislav in ActionRoles ActionID只是PK,對於單個動作有多個角色 –

+0

如果'ActionID'只是PK,那麼動作不能有更多的一個角色,因爲一旦你將具有相同'ActionID'的另一個記錄插入'ActionRoles '你會得到一個例外。 –

回答

1

當你有這樣一個鏈接表,將所有表的實體模型應該創建2個月底表之間的雙向關係屬性,隱藏鏈接表完全讓您通過類似訪問:

IEnumerable<string> roleNames = Entities.Actions 
    .First(a => a.Actionid == actionid) 
    .Roles 
    .Select(r => r.Rolename); 

其中actionid是包含int variableactionid你感興趣的內容。