2012-04-29 70 views
1

我想將聯繫人存儲到Azure表(名稱和性別作爲屬性)。所以我基本上是兩個班。一個來自TableSerivceContext,另一個來自TableServiceEntity。現在我無法連接這些部分。我真的會在cotroller(我使用MVC3)Azure TableStorage HowTo?

tnx任何提示?

回答

1

即時通訊假設您通過發佈的視圖接收屬性(名稱和性別)。
所以你的控制器可能是這樣的

public ActionResult DoSomething(User model) 
{ 

} 

,所以你需要做的是..這。創建一個從TableServiceEntity派生的類的新對象。並分配屬性。 這樣

var tableUser = new TableUser(){Name = model.Name, Gender=model.Gender} 

然後從TableServiceContext派生的類使對象。並使用AddObject()方法將用戶添加到表
http://msdn.microsoft.com/en-us/library/system.data.services.client.dataservicecontext.addobject.aspx

0

您需要繼承TableServiceEntity中的'Contact'和TableServiceContext中的上下文類以提供管理您的'Contact'實體的所有方法。然後你可以從任何地方(包括控制器)調用'Context'類的方法。

我寫了一個備用的Azure表存儲客戶端Lucifure Stash,它不必繼承任何基本調用並支持通過天藍表存儲進行額外的抽象。 Lucifure Stash支持大於64K的數據列,列表,枚舉,組合鍵,開箱序列化,用戶定義的變形,公共和私有屬性以及字段等。 它可在http://www.lucifure.com或通過NuGet.com免費供個人使用。

1

這是我最近做創建一個非常簡單的MVC3 +的Windows Azure表的示例應用程序:

  1. 創建的模型類DataEntity繼承來自TableServiceEntity,其中包含與PartitionKey和RowKey一起存儲的所有表屬性
  2. 創建另一個Model類繼承自包含IQueryable的TableServiceConext的DataContext設置表
  3. 創建一個Controller類,它創建HTTPGet和HTTPPost方法類型ViewResult,並返回View。該控制器還具有代碼先創建表使用模型的DataContext類型,然後添加的代碼調用作爲ADDOBJECT類型DataEntity如下:

DataContext的上下文=新的DataContext(storageAccount.TableEndpoint.AbsoluteUri,storageAccount.Credentials); context.AddObject(「DataEntryTable」,dataEntity); context.SaveChanges();

最後,您可以從控制器創建視圖。

+0

謝謝。這很有幫助 –