2010-03-29 66 views
0

說我有一個用戶(映射到一個用戶表)和編輯視圖(在MVC中)顯示模塊的多選列表(映射到一個模塊表),用戶可以訪問,與模塊預選基於用戶的實體集的模塊。如何保存包含EntitySet的對象?

我已經嘗試保存用戶,然後手動刪除所有User_Modules,並根據提交時選擇的內容將其添加回來,但用戶具有User.User_Modules的空EntitySet。

我找不到在線任何地方處理這種情況的正確方法。誰能幫忙?

編輯:加入我的EntitySet代碼

private EntitySet<UserModule> _UserModules; 
    [Association(Storage = "_UserModules", ThisKey="UserId", OtherKey = "UserId")] 
    public EntitySet<UserModule> UserModules 
    { 
     get { return this._UserModules; } 
     set { this._UserModules.Assign(value); } 
    } 

回答

0

如果設定第一次加載

的LINQ to SQL

DataLoadOptions options = new DataLoadOptions();  
options.LoadWith<User>(c => c.User_Modules); 
context.LoadOptions = options; 

//Do query and then see if your EntitySet is still null. 

LINQ到實體的方式嘗試檢查...

if(!User.User_ModulesReference.IsLoaded){ 
    User.User_ModulesReference.Load(); 
} 
//Insert delete logic here... 
+0

My EntitySets從不提供任何功能tions /屬性,如IsLoaded或Load。即在User.User_Modules在intellisense中沒有提供任何東西,並添加.Load(),例如不會生成。 這是不是預期的行爲? 我使用MSDN的語法構建了EntitySet,並針對另一個教程進行了雙重檢查。我可以確認EntitySet確實包含一組我可以查詢的UserModule。 – Pete 2010-03-30 09:07:40

+0

你把它們添加到雙方?即關係以及背景? – Nix 2010-03-30 12:43:55

+0

我沒有DataLoadOptions的上下文突出顯示,也沒有提示添加引用。我編輯了我的OP,以便在與User表相關的類上顯示我的EntitySet代碼,以防萬一我正在做或完全不正確地解釋它。 – Pete 2010-03-30 17:16:59