DBML,无法从一张桌子移动到另一张桌子

时间:2019-03-04 10:10:25

标签: c# linq-to-sql

在数据库中,我们有3个表:

INSEE_REGION, INSEE_CODEPOSTAL, INSEE_VILLE

它们没有任何关系,所以我在DBML中有这样的关系:

enter image description here

注意:第三个关系是一个测试关系,目的是查看关系方向是否会对导航产生影响。

使用以下代码,我将尝试从另一个实体中选择一个实体:

var dbCP = new InseeCodePostalDataContext();

dbCP.INSEE_REGION.Select(x => x.INSEE_CODEPOSTAL);  // error
dbCP.INSEE_REGION.Select(x => x.INSEE_VILLE);       // error

dbCP.INSEE_CODEPOSTAL.Select(x => x.INSEE_REGION);  // error
dbCP.INSEE_CODEPOSTAL.Select(x => x.INSEE_VILLE);   // error

dbCP.INSEE_VILLE.Select(x => x.INSEE_CODEPOSTAL);   // error
dbCP.INSEE_VILLE.Select(x => x.INSEE_REGION);       // error

所有这些错误都是相同的,归结为:“实体A不知道B,缺少参考或其他内容。”

想法是建立简单的查询,例如:

SELECT XYZ
FROM INSEE_VILLE 
INNER JOIN INSEE_CODEPOSTAL ON INSEE_VILLE.VILL_CodeINSEE = INSEE_CODEPOSTAL.Code_commune_INSEE 
INNER JOIN INSEE_REGION ON INSEE_VILLE.VILL_Region = INSEE_REGION.REG_Compteur
WHERE

无需处理Join in query或lambda语法。但有关系可以建立链接。

4.6.2,控制台应用程序。新建项目,添加新元素,linQ2SQL模型,添加3个表,添加关系,复制过去的代码。

0 个答案:

没有答案