我喜欢一个物体在Ravendb中存储的方式,但是有一个实用的问题,我不确定最佳答案。

可以说我有报价请求:

QuotereQuest.CS

int Id;
dateTime DateCreated;
List<Quotes> Quotes;

QUOTE.CS

int ProviderId;
int Price;
int ServiceDays;
int ServiceTypeId;

当有人登录页面时,我吐出了他们可以从中选择的引号清单。这些引号仅与报价请求的实例有关。

我的问题是,由于一个子对象(例如列表中的报价)没有数据库生成的ID,因此如何生成Querystring以让下一页知道用户要购买的报价?

一个ProviderId可能会有多个报价。

我的想法要么是添加了一个报价,并根据以下来递增。

人们通常如何处理这样的事情?

有帮助吗?

解决方案

您是否真的需要将购买(用户选择购买的东西)与原始报价相关联?我猜您拿来报价,然后将其转换为购买。如果是这样,那就不要担心ID。只需将组成值传递到下一步即可。换句话说,在DDD意义上将报价视为值。

但是,如果你 需要存储购买的关联...好吧,这取决于您的真实 需要 追踪。例如,您只需更新QuoryErequest,标记所选的报价即可。 (添加一个与报价类报价类似的问题或类似的内容。)然后,购买可以链接回报价请求,您可以通过标志来识别报价。

同样,所有这些都取决于上下文(我只是对此进行猜测)。

其他提示

由于没有人回答这个问题,但我会说我会怎么做。

为什么要添加ID?只使用列表的索引?请求是“?quote = 0”,他们在位置0处得到报价?

不确定我是否在这里没有得到东西...

一个选项是让父对象存储最后使用的ID。添加新的子对象时,您会增加身份点并将其添加到孩子中。保存对象时,ID-CONTER会自动增加。

可以说,您的博客文章带有评论:

public class Post
{
  public int NextCommentId;
  public List<Comment> Comments;
  ...
}

...

var comment = new Comment { Id = post.NextCommentId++ };
post.Comments.Add(comment);

session.SaveChanges();

上面的代码可能不是100%正确的,但应该让您了解如何做!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top