Est-ce que quelqu'un sait (idéalement avec une référence) si la version VS2010 de LinqToSQL ou EntityFramework v4 prendra en charge les requêtes sur les types de données spatiales SQL 2008?Prise en charge des types de données spatiaux dans Linq2Sql ou EF4
Répondre
Dans EF 4.0, vous pourriez être en mesure de pirater quelque chose ensemble en utilisant une combinaison de custom functions et en prétendant que les types spatiaux sont vraiment des types binaires. C'est quelque chose que je pense à faire et à essayer et à ajouter à my tips series. Mais encore, même le hack n'est pas prouvé. :(
Et comme pour un soutien direct, malheureusement ni L2S ou EF v4 soutiendra les types spatiaux dans les délais VS2010.
Entity Framework Manager du programme.
Voici une solution de contournement pour obtenir il fonctionne dans Entity Framework/LINQ to Entities:
Vous pouvez utiliser une base de données View pour retourner Well-Known-Text (en utilisant "geometry.ToString()" dans la requête) ou binaire. les lignes sont retournées, il suffit de convertir la chaîne/binaire en un objet SqlGeometry dans .NET.
Voici une exemple de requête utilisé pour construire une vue qui convertit un « emplacement » champ de type de géométrie à une chaîne de texte bien connu:
SELECT ID, Name, Location.ToString() as Location FROM MyTable
Voici un exemple d'interroger les entités résultantes qui ont un champ « Lieu » qui contient un texte bien connu ou représentation chaîne de l'objet « géographie »:
var e = new MyApp.Data.MyDataEntities(connectionString);
var items = from i in e.MyTables
select i;
foreach (var i in items)
{
// "Location" is the geography field
var l = SqlGeography.Parse(i.Location);
var lat = l.Lat;
var lng = l.Long;
}
une chose supplémentaire, est que vous aurez besoin de faire des questions sur la base de l'espace dans les procédures stockées, puisque vous ne veut pas tirer toutes les données de la table dans .NET afin d'effectuer votre propre requête spatiale en utilisant LINQ. Il ne s'agit pas d'un support de type SQL Spatial, mais il vous permettra de lancer simultanément Entity Framework et SQL Spatial.
Excellent, merci beaucoup Chris. Je vais jeter un coup d'oeil à ça! –
Cela a été quelque chose que j'ai joué/fait avec L2S. –
Merci beaucoup :) –
Vous pouvez également effectuer des Linq-to-SQL avec des tables et des colonnes manuscrites et obtenir directement les types spatiaux SQL. Je l'ai testé ce qui suit sur un échantillon DB (ne vous oubliez pas de faire référence et 'à l'aide' à System.SqlServer.Types
...
string connectionString = @"Data Source=YADDAYADDA;Initial Catalog=MUMBLEMUMBLE;Integrated Security=True";
var pointsFileDc = new PointsFileDC(connectionString);
var geos = (from point in pointsFileDc.pointsData
select point).Take(10);
foreach (var geo in geos)
{
ObjectDumper.Write(geo);
}
...
public class PointsFileDC : DataContext
{
public Table<GeoPoints> pointsData;
public PointsFileDC(string connection)
: base(connection)
{
}
}
[Table(Name = "Points")]
public class GeoPoints
{
[Column(IsPrimaryKey = true)]
public int PointId;
[Column]
public SqlGeography GeoPoint;
}
- 1. Prise en charge de Spring.Net pour Linq2SQL
- 2. Prise en charge de plusieurs bases de données dans Symfony
- 3. Prise en charge de DEVPATH
- 4. Types de référence Linq2SQL
- 5. Prise en charge de Rijndael en Java
- 6. Prise en charge de la géométrie PostGIS
- 7. Prise en charge des alias CNAME
- 8. Prise en charge STL dans Ruby
- 9. WCF et ASP.NET: Prise en charge de la prise en charge duplex utilisant AJAX
- 10. Toute prise en charge des clés étrangères dans le shell de schéma CakePHP ou les migrations?
- 11. Prise en charge de TDE PostgreSQL
- 12. source de données non prise en charge par mot clé
- 13. Prise en charge des périphériques mobiles dans Ruby on Rails
- 14. Prise en charge des événements de clavier Flex 3
- 15. Prise en charge de RTL PropertyGrid
- 16. l'interface ITransactionLocal est pas prise en charge
- 17. Prise en charge de la bibliothèque Python
- 18. Prise en charge d'IMAP IDLE en PHP
- 19. La prise en charge pour JspWriter
- 20. Prise en charge AJAX dans les téléphones intelligents en 2009
- 21. Prise en charge du support HTML5 Safari4
- 22. Prise en charge de plusieurs domaines dans Forms AUthentication
- 23. Prise en charge de la session file_get_contents() en PHP
- 24. Prise en charge des segments d'URL macosx 10.6
- 25. Prise en charge de plusieurs polices/langues dans Flash
- 26. Prise en charge des paramètres régionaux OS pour Python
- 27. Types hérités Linq2SQL et requête OfType
- 28. Prise en charge de Midi MediaElement dans Silverlight 3
- 29. Prise en charge de l'application multilingue dans Windows CE?
- 30. Prise en charge de la bibliothèque Javascript Raphael dans NetBeans
Merci Alex , semble être une réponse fiable et définitive! Existe-t-il une raison particulière EF4 ne les soutiendra pas (trop fort, pas assez de demande, trop peu prioritaire ..?) –
Eh bien, je ne vais pas dire une trop faible priorité. Je considère que c'est une haute priorité, mais je dirais que ce n'était pas aussi élevé que certaines des choses que nous avons fini par faire, comme POCO, F Ks, Model First, etc. –
Quand EF aura-t-il un support de type spatial? VS'2012; seulement 4 ans après ils ont été ajoutés à SQL Server ?? –