Azure表存储如何?

时间:2012-04-29 16:40:23

标签: azure asp.net-mvc-3-areas azure-table-storage

我想将联系人存储在Azure表上(名称和性别作为属性)。所以我基本上是两节课。从TableSerivceContext派生的那个,另一个派生自TableServiceEntity。现在我无法连接这些碎片。我将在cotroller上做什么(我使用MVC3)

tnx任何提示?

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

这是我最近创建的一个非常简单的MVC3 + Windows Azure Table示例应用程序:

  1. 创建一个继承自TableServiceEntity的Model Class DataEntity,其中包含与PartitionKey和RowKey一起存储所需的所有表属性
  2. 创建了另一个继承自TableServiceConext的Model类DataContext,其中包含IQueryable设置表
  3. 创建一个Controller类,用于创建返回View的HTTPGet和HTTPPost方法类型ViewResult。控制器还有代码首先使用Model DataContext类型创建表,然后添加代码以将AddObject调用为DataEntity类型,如下所示:
  4. DataContext context = new DataContext(storageAccount.TableEndpoint.AbsoluteUri,storageAccount.Credentials); context.AddObject(“DataEntryTable”,dataEntity); context.SaveChanges();

    最后,您可以从控制器创建视图。

答案 2 :(得分:0)

您需要继承TableServiceEntity中的“Contact”和TableServiceContext中的上下文类,以提供管理“Contact”实体的所有方法。然后,您可以从任何地方(包括控制器)调用“Context”类上的方法。

我编写了一个备用的Azure表存储客户端Lucifure Stash,它不需要从任何基本调用继承,并支持对azure表存储的额外抽象。 Lucifure Stash支持大数据列> 64K,阵列&列表,枚举,组合键,开箱即用的序列化,用户定义的变形,公共和私有属性和字段等。 它可以在http://www.lucifure.com或通过NuGet.com免费供个人使用。

答案 3 :(得分:0)

下载Windows Azure Platform Training Kit并在Windows Azure存储上执行实验。在15分钟内你将有一个工作原型。