映射实体与微服务架构上的两个不同模式有依赖关系

时间:2016-11-08 05:54:39

标签: c# nhibernate fluent-nhibernate microservices

基于微服务架构,我将这两种方案分为两个不同的数据库,见下文,

  • (VS2015 Solution1,BusinessEntity项目)db1 - > schema1 - >客户,供应商
  • (VS2015 Solution2,BusinessEntity项目)db2 - > schema2 - >产品,订单,订单详情

C# 现在我在创建映射实体时遇到了问题,我应该如何以及在何处创建映射实体。

  

我正在使用" PostgreSQL"作为我的DB和" Fluent nHibernate"

public class CustomerOrderMap
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
// (pkey property)
public virtual int Id  { get; set; } 

// (fk property, this is in db1, schema1)
public virtual int CustomerId     { get; set; } 
public virtual Customer Customer  { get; set; }

// (fk property, this is in db2, schema2)
public virtual int OrderId    { get; set; }
public virtual Order Order    { get; set; }
}

问题

  1. 我应该在哪里拥有这个实体?
  2. 由于我正在关注微服务架构,因此我正在使用" Order" schema2中的实体。因此,如果我要在schema1中拥有映射实体,或者我在架构方面缺少某些东西,我怎样才能在映射实体中拥有该实体类型?
  3. 任何例子都会受到赞赏!!

    感谢。

1 个答案:

答案 0 :(得分:0)

微服务架构的重点是在单独的不同有界上下文中隔离功能。从您的示例中,您有2个有界上下文(架构1和架构2)。您不会跨这些域共享域对象。您可以共享Id,但是您将不得不返回拥有域对象的微服务来填充它。