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,
...
}
}
}