Entity Framework - постоянная модель отличается от доменной модели

У меня следующий код задержки. Существует разделение между моделью существования и (анемичной) моделью предметной области. В чем выгода этого разделения и неявного преобразования? Видите ли вы какие-либо недостатки?

Я знаю, что при неявном преобразовании возможно следующее: SplitAmountEF saEF = dbContext.SplitAmount.Find(id); SplitAmount sa = saEF; // неявное преобразование. Их можно использовать взаимозаменяемо.

Если модель предметной области почти такая же, как модель постоянства, не лучше ли использовать только модель постоянства (без использования модели домена вообще)?

Пример:

//Domain Model
public class Booking 
{
  public Guid ID {get; set;}
  ....

}

public class SplitAmount
{
  public Guid ID {get; set;}
  public  Decimal Amount {get; set;}
  ...

  public Guid IDBooking {get; set;}
}


//Persistence Model   
public class BookingEF 
{
  public Guid ID {get; set;}
  ...       
}

public class SplitAmountEF
{
  public Guid ID {get; set;}
  public  Decimal Amount {get; set;}
  ...

  public virtual BookingEF Parent {get; set;}

  //implicit converstion from SplitAmountEF to SplitAmount
  public static implicit SplitAmount(SplitAmountEF saEF) 
  {
     return new SplitAmount() 
     {
       ID = saEF.ID,
       Amount = saEF.Amount,
       ...
       IDBooking = saEF.Parent.ID,
     }
  }

 //implicit converstion from SplitAmount to SplitAmountEF
 public static implicit SplitAmountEF(SplitAmount sa) 
  {
     return new SplitAmountEF() 
     {
       ID = sa.ID,
       Amount = sa.Amount,
       ...

     }
  }
}

0 ответов

Другие вопросы по тегам