Я проектирую объектную модель приложения, и существует определенный уровень импеданса между объектами и таблицами.Например, у меня есть:
Product
-----------
ProductId,
ProductTypeCode,
StatusCode,
SKUNumber
ProductMarketAvailability
--------------------------
ProductMarketAvailabilityId,
ProductId,
MarketId,
Rank
ProductDescription
------------------
ProductDescriptionId,
ProductId,
MarketId,
StatusId,
DescriptionTypeId,
Description
(я не иллюстрировал таблицы поиска: Status, DescriptionType, ProductType, Market)
Я хочу иметь ДОМЕННЫЙ КЛАСС :
Product
--------------
ProductId,
SkuNumber,
MarketId,
MarketName,
StatusCode,
Status,
Title ,
Description,
Caption,
Rank
С LLblGen pro или Entity Framework:
- how i can map these tables my domain class?
- Is it a best way to deal with this through Domain classes or better to
isolate domain classes from ORM generated classes
- If I manually map ORM classes data to my domain classes then when i
persisting my Domain classes (imagine they are POCO Self tracking),
how can i write managable , well crafted code ?
i dont want to write , it doesnt look so right to me:
if (myProduct.TitleisDirty)
{
ProductDescription p= myRepository.GetDescriptionById
(myProduct.ProductDescriptionIdForTitle);
p.Description=myProduct.Title;
p.SubmitChanges();
}
if (myProduct.RankisDirty)
{
ProductMarketAvailability pma= myRepository.GetMarketById
(myProduct.ProductMarketAvailabilityId);
pma.Rank=myProduct.Rank;
pma.SubmitChanges();
}
Большое спасибо за чтение.