2012-04-29 47 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

谢谢。这很有帮助 –