我有一个课程点:
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
答案 0 :(得分:1)
查找SqlBulkCopy
- 它不是Linq,但它允许您比Linq更快地将大量数据推送到SQL Server。
答案 1 :(得分:0)
我建议使用表格。 1000000行的两个整数,一个双倍和一个FK将是非常有效的。如果您担心从数据库获取数据,可能需要对此数据执行除linq to sql以外的操作
那说你可以使用XML type列并将你的点存储在那里,Linq支持sql。但不是没有其他考虑因素。
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类型 映射这些类型。