Zajmuję się tworzeniem aplikacji, która implementuje DDD i repozytorium Wzorzec, jak pokazano na schemacie poniżej:Persistent Ignorant Domeny z Entity Framework i Przestrzennej Danych
Spodziewam się zachować moja domena warstwę trwałe ignorantem, więc Nie chciałbym tam instalować bibliotek frameworków encji. Jedyny problem jaki napotykam to to, że moja aplikacja używa danych przestrzennych, ale nie powinienem używać DbGeography jako typu własności moich jednostek, gdy tylko należy do przestrzeni nazw System.Data.Entity.Spatial, z zespołu EntityFramework.
Czy istnieje sposób, aby utworzyć klasę utrzymywania szerokości, długości i rzędnych wartości w warstwie domeny, tak:
public class Location
{
public double Latitude { get; set; }
public double Longitude { get; set; }
public double Elevation { get; set; }
}
a następnie przekonwertować do DbGeography klasę w moim repozytorium warstwy?
Innymi słowy, podmioty domeny będzie mieć tylko klasę lokalizacji jako właściwość:
public class Place : IEntityBase, ILocalizable
{
public int Id { get; set; }
public string Name { get; set; }
public Location Location { get; set; }
public User Owner { get; set; }
}
a ja przekształcić go DbGegraphy utrzymują danych przestrzennych i zrobić kilka obliczeń tylko w warstwie repozytorium. Moim planem było wypróbowanie czegoś takiego, aby przekonwertować:
public class LocationMap : ComplexTypeConfiguration<Location>
{
public LocationMap()
{
Property(l => DbGeography.FromText(string.Format("POINT({0} {1})", l.Longitude, l.Latitude))).HasColumnName("Location");
Ignore(l => l.Elevation);
Ignore(l => l.Latitude);
Ignore(l => l.Longitude);
}
}
Ale to nie działa i nigdy nie będzie. Jak mogę rozwiązać ten problem? Jakie są najlepsze praktyki w tej sytuacji?
Dziękuję
Witam @GertArnold, Proszę spojrzeć. https://msdn.microsoft.com/pt-br/library/system.data.spatial.dbgeography(vsv.110).aspx. –
Ładnie wykonana architektura aplikacji BTW –
'System .Data.Spatial' jest obszarem nazw .Net –