Select 一个 属性 一个 object 与连接

Select a property of an object with join

我有一个 object 地方有一些属性(名称、经度、纬度等) 其中一个属性是 object "horizon".

Horizon有一个Dictionary <float,float>(地点horizon中的一组点azimut-height)

我想构建一个 table 来存储 object "place",但是 object "horizon"

有问题

因为我不知道字典里有多少个点,所以我不能只为每个点建立一个列。

所以我想我必须创建另一个 table "dbo.horizons" 列

然后用JOIN来select全部点

但我不明白如何构建命令

如果我接受这样的命令:

SELECT places.name, places.longitude, places.latitude...,                 
horizon.azimut, horizon.height         
FROM places  LEFT JOIN dbo.horizons          
ON places.name = dbo.horizons.namePlace

我怎么读的?

我使用dataRedaer.Read()读取数据库中的一行。

如何获得所有点数并只建造一处?

和插入中的相同问题,我如何构建一个 INSERT 命令以插入一个带有 horizon

的位置

谢谢

有很多方法,但让我们按照您当前的方式进行操作。

通过问题中的查询,每个地点将获得多行,因为您的数据读取器将有一行与地点相关联的每个 horizon。因此,您需要将位置保存在变量中,并在每次数据读取器循环到新行时检查它,看是否是同一个位置。如果是,则只需将 Horizon 添加到当前位置。如果它已经改变,那么你知道开始一个新的地方。

至于 INSERT,您将不得不执行 multi-step 操作。您不能使用单个命令插入两个 table。因此,您会将地点插入地点 table,然后将每个 Horizon 插入 Horizon table.