【发布时间】:2018-12-07 13:46:00
【问题描述】:
我第一次使用 DynamoDB,这是我第一次使用 ORM。我正在尝试遵循将模型与控制器分开的良好做法。我正在使用的项目是用于 Lambda 的 ASP.NET Web API
我已经编写了我的基本模型,如下所示
我有一个用户类
[DynamoDBTable("Users")]
public class User
{
[DynamoDBHashKey]
public string username { get; set; }
public string firstname { get; set; }
public string surname { get; set; }
我有一个 Accounts 类
[DynamoDBTable("Account")]
public class Account
{
[DynamoDBHashKey]
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
[DynamoDBLocalSecondaryIndexRangeKey]
public User User { get; set; }
我的帐户与用户相关联。现在我明白,就数据库而言,我只想存储用户的 ID(用户名)。但就我的模型而言。我应该存储用户对象还是只存储用户名?如果我应该存储用户对象,我如何只保存用户对象中的密钥而不是整个对象。
最重要的是,如果我将其存储为一个完整的对象。我不希望客户在整个对象中发布,他们只会在用户名中发布。控制器中的以下代码有意义吗? (注意:DBContext 是我的数据库包装器)
public void Post(Account NewAccount, String username)
{
User user = DBContext.GetItem<User>(username);
NewAccount.User = user
DBContext.StoreAsync(NewAccount);
}
注意:由于 Accounts 中的 User 对象,此代码当前无法运行。
【问题讨论】:
标签: c# asp.net-web-api orm amazon-dynamodb