C#Linq SQL保存列表<point> </point>

时间:2011-02-09 16:26:36

标签: sql linq

我有一个课程点:

class Point
{
  public int X { get; set; }
  public int Y { get; set; }
  public double Value { get; set; }
}

和类图表汇总cca 1000点。

[Table(Name = "Chart")] 
class Chart
{
  public List<Point> Points { get; set; }
}

我想有效地将​​Points保存到数据库。我不需要在Points之上进行任何操作。有没有办法如何在单个列中保存点?我认为这种方式应该比为1000000点创建新表更有效。 THX

2 个答案:

答案 0 :(得分:1)

查找SqlBulkCopy - 它不是Linq,但它允许您比Linq更快地将大量数据推送到SQL Server。

答案 1 :(得分:0)

我建议使用表格。 1000000行的两个整数,一个双倍和一个FK将是非常有效的。如果您担心从数据库获取数据,可能需要对此数据执行除linq to sql以外的操作

那说你可以使用XML type列并将你的点存储在那里,Linq支持sql。但不是没有其他考虑因素。

From the docs

  

SQL Server XML数据类型是   从Microsoft SQL开始提供   Server 2005.您可以映射SQL   服务器XML数据类型为XElement,   XDocument或String。如果列   存储不可能的XML片段   读入XElement,列必须是   映射到String以避免运行时   错误。必须的XML片段   映射到String包括   以下内容:

     

一系列XML元素

     

属性

     

公共标识符(PI)

     

评论

     

虽然你可以映射XElement和   XDocument到SQL Server如图所示   类型映射运行时行为   Matrix,DataContext.CreateDatabase   方法没有默认的SQL Server类型   映射这些类型。